Dodawanie kontrolek z innego wątku/klasy

Dodawanie kontrolek z innego wątku/klasy
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć, stworzyłem klasę bazową i mam w niej funkcję która dodaje(tzn. chciałbym żeby to robiła) Labele do formy w której jest wywołana ta metoda, niestety forma nie reaguję na to, nic się nie dzieje. Nie chcę samego dodawania robić w formie, gdyż rodzajów klas pochodnych będzie wiele a nie chciałbym się bawić w rozległe warunki. Czy wgl. można z poziomu innej klasy dodawać kontrolki do konkretnej formy?
Klasa w której jest ten kod znajduje się w osobnym pliku(ale w tym samym rozwiązaniu)

Kopiuj
 public virtual void show(int Y=0, int X=0)
        {
            this.Title.Left = X;
            this.Title.Top = Y;
            this.Date.Left = X;
            this.Date.Top = Y + 20;
            this.Description.Left = X;
            this.Description.Top = X + 40;
            Action act1=()=>Form1.ActiveForm.Controls.Add(this.Title);
            Form1.ActiveForm.Invoke(act1);
            Action act2 = () => Form1.ActiveForm.Controls.Add(this.Date);
            Form1.ActiveForm.Invoke(act2);
            Action act3 = () => Form1.ActiveForm.Controls.Add(this.Description);
            Form1.ActiveForm.Invoke(act3);
        }
 

Z góry dzięki za pomoc

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Można, ale lepiej zrobić to obiektowo i zastosować jakiś wzorzec warstwy prezentacji, np. MVP. Bezpośrednia komunikacja okienek kończy się źle.

  • Rejestracja: dni
  • Ostatnio: dni
0

Skoro można to dlaczego w nie chce mi to zadziałać? Jak by to miało zgrubsza wyglądać? I dlaczego może się źle skończyć? :D

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

A co konkretnie nie chce Ci zadziałać. Z tego kodu trudno mi nawet powiedzieć, co miałby robić.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.