Как да промените етикета на mdi statusstrip от дъщерен формуляр

От няколко дни търся решение, но не мога да намеря прост отговор. Опитах редица примери, намерени в интернет (делегати, свойства, дори нарушаване на OOP, което прави всичко публично), но никой от тях не изглежда да работи. Може ли някой да напише възможно най-прост код за следния проблем:

Имам MDI родителска форма и дъщерна форма. Родителската форма на MDI има етикет на лента за състояние. Детската форма има бутон. Всичко, което искам да направя, е да актуализирам MDI етикета при щракване върху бутона за дъщерна форма.

Благодаря!!!


person Alex    schedule 16.04.2011    source източник


Отговори (2)


Не е най-доброто решение. Въпреки това е най-лесният:

1- Променете модификатора за достъп на етикета на лентата на състоянието на публичен.

2- Разопаковайте родителския формуляр до неговия реален тип, за да имате достъп до етикета:

((ActualMdiParentFormType) this.MdiParent).statusStripLabel.Text = "Value";
person Akram Shahda    schedule 16.04.2011
comment
по-чисто решение би било да добавите член към родителския формуляр, който променя label.text - person DarkSquirrel42; 16.04.2011
comment
@ DarkSquirrel42: Добавете своя коментар като отговор. - person Homam; 16.04.2011
comment
не разбрах това за първи път, когато прочетох. но сега го разбрах и бих искал да напиша отговора си... ((Form1)this.MdiParent).statusStripLabel.Text = Value; това е, което го получих. Благодаря . - person Erdinç; 12.09.2014

Има друго решение, което е да създадете събитие в дъщерния прозорец и да регистрирате родителския прозорец към това събитие. В случай, че събитието се задейства, родителският прозорец ще бъде уведомен и в съответния манипулатор на събития на родителския прозорец можем да актуализираме НАШИЯ контрол.

Това е по-подобен на "MVVM" подход.

Проверете тези връзки за повече информация:

Предаване на стойност между формуляри чрез събития

http://www.c-sharpcorner.com/uploadfile/yougerthen/mvvm-implementation-for-windows-forms/

MVVM: Урок от началото до края?

Надявам се това да помогне,

person Ramon Araujo    schedule 28.08.2014