Właściwość inicjowana przed InitializeComponent()

0

Cześć

Mam pewien problem. Piszę aplikację w WinForms. Mam UserControl w pewnej formie. Ten UserControl wygląda zawsze tak samo z wyjątkiem tego, że w zależności od tego który przycisk nacisnę w formie wyżej to taki przycisk jest widoczny na nowej formie (modyfikuj, albo dodaj). No i chciałbym teraz aby w momencie tworzenia tej formy ustawiać jakąś flagę jaki przycisk powinien się uwidaczniać. Pomysł mój był taki:

Tworzę formę w której mam UserControl wstawiony:

using (var addClient = new FrmAddClient() { AddClient = true }) 

w tworzonej klasie(formie) mam dodatkowo właściwość:

 public bool AddClient { get; set; }

Tworzona forma wywołuje InitializeComponent() w którym tworzony jest nowy obiekt userControl. W tworzonym UserControl również mam właściwość w której trzymam sobie tą flagę dzięki której odróżniam który przycisk będzie widoczny, a ustawiam ją sobie w InitializeComponent() formy:

 this.ucAddClient1 = new CenterManagmentSystem.View.ucAddClient() { IsAddClient = this.AddClient };

problem leży w tym, że właściwośc jest ustawiana dopiero jak stworzy się okno, czli wtedy kiedy już powinienem wiedzieć jak ustawić widoczność przycisków, które ustawiam w konstruktorze usercontrol'a. Jak z takim problemem powinenem sobie poradzić? Może do konstruktora przesyłać parametr? Wtedy jest problem taki, że w designerze nie mogę podglądać formy..

0

Trochę nie rozumiem problemu. Masz UserControl z właściwością, której ustawienie steruje widocznością przycisków. Nie jest tu potrzebne żadne InitializeComponent, a i na designerze powinno zadziałać.

0

Każda standardowa kontrolka działa w ten sposób, że najpierw jest tworzona (konstruktor; w konstruktorze może ale nie musi być InitializeComponent) a potem ustawiane są właściwości.
Obejrzyj zresztą jak wygląda InitializeComponent typowej formy.
Nie rozumiem co chcesz wykombinować.

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