Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

C# dostep z classy do richtextboxa


Bandito423

Pytanie

Opublikowano

//FOrm1

public Form1()
        {
            InitializeComponent();
        }
        public void update(string text)
        {
            richtextbox1.Text = text;
        }

//Class1

public class Jakas tam klasa
    {

Form1 Nazwa = new Form1();

public void Wypisz()

{

Nazwa.update("tekst ktory ma wyswietlic")

}

}

 

Problem w tym ze nie wiem w jaki sposob mam przekazac wartosc do richtextboxa, wogole nic sie nie wyswietla

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

Zapomniałem, że tutaj powinno być:

public void Wypisz(Form1 form)
{
form.update(form.richtextbox1, "tekst ktory ma wyswietlic");
}

Nie zrobię ci tego w 100%, bo nie na tym polega nauka, naprowadziłem cię jak poprawnie odwołać się do obecnej instancji klasy za pomocą słowa "this".

i w zasadzie to samą funkcję wypisz(); też musisz użyć w klasie Form1, dlatego lepiej jest użyć tego tak:

class Test
{
	Form1 form;
	public Test(Form1 form)
	{
		this.form = form;
	}
	public void wypisz()
	{
		form.update(form.richtextbox1, "tekst");
	}
}

po czym w Form1 robisz:

public partial class Form1 : Form
{
	public Form1()
	{
		InitializeComponent();
	}
	private void Form1_Load(object sender, EventArgs e)
	{
		Test t = new Test(this);
		t.wypisz();
	}
	public void update(RichTextBox box, string text)
	{
		box.Text = text;
	}
}

graphic.png

Opublikowano

Cos nie dziala :) probowalem, najlepiej jakbys mogl to wstaw screena //jak daje Wypisz(this); podkresla na czerwono i jest napisane ze metoda musi zwrocic typ :P

 

Opublikowano

Musisz to zrobić tak:

//FOrm1

public Form1()
        {
            InitializeComponent();
        }
        public void update(RichTextBox box, string text)
        {
            box.Text = text;
        }

//Class1

public class Jakas tam klasa
    {

Form1 Nazwa = new Form1(); //to wywalasz, bo tu robisz nową formę, powinieneś odwołać się do aktualnej za pomocą słowa kluczowego "this"

public void Wypisz(Form1 form)

{

form.update("tekst ktory ma wyswietlic")

}

}

 

prawidłowe użycie będzie wyglądać tak:

Wypisz(this);

graphic.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...