[c#] odwołanie się do elementów z innej formatki

0

witam

mam problem, w jaki sposób można odwołać się do jakiegokolwiek elementu z 1 formatki do 2giej, np:
form1 zawiera Button
form2 chcemy się odwołać do form1.Button
w Visual Studio C# nie ma wskaźników, dlatego należałoby by stworzyć fukcję publiczną zwarającą uchwyt na ten element? może się mylę, ale jak to zrobić co ta funkcja ma zwrócić? proszę o pomoc, jakiś przykład
dzięki z góry

pozdrawiam

0

Mozesz zwrocic cokolwiek na co masz ochote... pamietaj ze wszystko mozesz sobie castowac na object i pozniej z powrotem na wlasciwy typ.
Co do Twojego problemu to ja go rozwiazuje przez atrybuty. Po prostu forma, kontrolka, czy cokolwiek innego, ktora ma sie komunikowac sie z inna zawiera w sobie pole z referencja na ten obiekt, a jego wartosc jest ustawiana przez atrybut. Mozna tez sie bawic i np przy tworzeniu obiektow ustawiac odpowiednie referencje w konstruktorze, jednak w bardziej dynamicznych przypadkach przydkach atrybuty lepiej sie sprawdzaja.

Ah.. fakt.. .przyklad...

w jakiejs kolejnosci musisz tworzyc te formy, prawda? Jesli nie dzialaja na osobnych watkach to bezproblemu (z watkami juz nie jest az tak latwo).

kod formy 2

Button b;
public SetButtonRef(Button b)
{
set{ this.b = b; }
}

kod formy 1;

Button btnCosRobi; // reszta ustawiana w designerze
void TworzeDrugaForme()
{
Form2 f2 = new Form2();
f2.SetButtonRef(this.btnCosRobi);
}

i teraz bezproblemu mozesz odwolywac sie do buttona na formie pierwszej z formy drugiej


0

dzięki za pomoc rozumiem o co biega, ale troszkę dziwi mnie ten zapis:

public SetButtonRef(Button b)
{
set{ this.b = b; }
}

cóż to? funkcja? klasa?

0

dobra... rozumiem że to konstruktor
dzięki kolego poradze sobie na pewno

0

Fakt... zrobilem byka :P
to nie jest konstruktor... tylko typu zwracanego tam brakuje.... void powinno byc po public :P
No ale tak to jest przy 'kodach z palca' :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1