Dodawanie komponentow do glownego okna projektu

0

Witam,
Tworze oplikacje Win Forms. Po zainicjowaniu glownego okna musze wczytac plik tekstory zawierajacy informacje o tym ile labali i z jakimi tekstami wstawic do frama. Utworzylem klase analizujaca plik i metode w niej zwracajaca liste obiektow ktore trzeba wysliwetlic. Tworze dodatkowo klase "dekoratora" ktora ma za zadanie dodawanie do glownego frama labeli. Jak moge przy standardowym uruchamianiu frama ( Application.Run(new MainForm()); ) dostac do obiektu formy aby za pomoca dekoratora dodac kontrolki?
Z gory dzieki za pomoc

0

Konstruktor klasy "MainForm"?

0

W jaki sposob przez konstruktor klasy main?

mam przykladowo:

public partial class MainForm : Form
{
static void Main(string[] args)
{
if (args.Length!=1 || !String.IsNullOrEmpty(args[0]))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}

   public MainForm()
   {
       InitializeComponent();    
       Reader temp = new Reader(file);
       Decorator decorate = new Decorate(temp.getLabels());
   }  

...
}

jaka powinna byc metoda klasy Decorator umozliwajaca odwolanie sie do MainFrama zmieniajac jego zawartosc ( dostanie sie do Controls obiektu MainForm )?

0

Musisz przekazac referencje formularza do swojej klasy decorator. Powinno wygladac to mniej wiecej tak:


//gdzies w klasie formularza
Decorator d = new Decorator(this);

//klasa Decorator
MainForm m;

public Decorator(MainForm forma)
{
      m = forma; //masz teraz dostep do kontrolek swojego formularza z poziomu innej klasy
}

0

super:) niby takie proste a nie domyslilem sie:) dzieki bardzo

0

jednak jest jeszcze jeden problem ... postepujac tak w obiekcie MainFrame w dekoratorze nie moge sie odstac do kontrolek ani bezposrednio ani przez wlasciwosc Controls .... w debugu jednak widze ze obiekt ten przechowuje ten kontrolki ...

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