Když se načte formulář, kód musí dělat věci, jako je nastavení datagrids, ComboBoxes nastavit titul, atd. Jsem inklinoval vždy použít událost zatížení spíše než nové (konstruktéra). Existují nějaké pokyny, u nichž jeden je pro jaké činnosti nejlepší?
Winform Form konstruktér vs události Load
V podstatě chcete, aby vaše konstruktor být tak lehké, jak je to možné. Snažím se dát většinu věcí v obsluze události Load jak byly vytvořeny prvky uživatelského rozhraní a jsou použitelné v tomto okamžiku. Domnívám se však, obvykle instance třídy objektů atd. V konstruktoru, jak to je ve skutečnosti součástí konstrukci objektu. Někdy nemůžete dát věci na jednom místě nebo jiný, ale i pro dobu, kdy je to možné, měli byste prostě dát je tam, kde se zdá nejvhodnější.
Volání InitializeComponent je automaticky vložena do konstruktoru vašeho formuláře / stránku. InitializeComponent je automaticky generované metoda, která
- vytváří různé prvky uživatelského rozhraní na WinForm XAML stránku /
- inicializuje jejich vlastnosti s hodnotami uloženými v souboru zdrojů
Takže něco v souvislosti s UI uspořádání / úpravy by měly jít po této výzvě. Pokud to uděláte v obcházení Form.OnLoad, máte jistotu, že UI je připraven jít (InitializeComponent byl nazýván) ... tak bych volil držet onLoad pro UI.
Vytváření členové non-UI, konstruktér by bylo místo, kde jsem se poprvé podívat.
Mějte na paměti, že bude vytvořen / vykonán při které tvoří stvoření něco v konstruktoru formuláře. jím:
Forma FRM = nová forma ();
Vzhledem k tomu, něco v události Load dojde pouze tehdy, když je formulář zobrazen tj frm.Show ();