[C#] Przekazywanie Kontrolek z jednego okna do drugiego

W pierwszej klasie zrobić publiczną metodę która zmienia pewne właściwości kontrolek.

Z drugiej formatki wywołujesz tą metodę.

Aleksowi chodziło o takie coś:

class Form1 : Form

{

   //...

   public void Zmień()

   {

      //np.

      this.button1.Text = "abrakadabra!";

   }

}


//Tworzona jest tylko przez Form1 i do metody Show przekazywana jest okno główne które jest właścicielem(czyli Form.Owner).

class Form2 : Form

{

   //...

   private void button1_OnClick(object sender, EventArgs e)

   {

      (this.Owner as Form1).Zmień();

   }

}

Jeśli nic nie pomieszałem to powinno działać.

Prościej, ale gorzej: zrobić te kontrolki jako pola publiczne(co się ma nijak do enkapsulacji i OOP, ale będzie działać i jest prostsze do napisania).

Fiolek, masz sumienie? Takich brzydkich rzeczy uczyć młodych! Owszem prostsze ale …

Żeby było elegancko, to należałoby użyć co najmniej zdarzeń, a jeszcze lepiej klas pośredniczących lub w ogóle jakiejś sensowniejszej architektury, np. MVP.