В моем текущем приложении у меня есть main form: frmMain
с statusstrip
и label: lblStatus
внутри.Я хотел бы обновить этот ярлык из своих пользовательских элементов управления, которые я добавляю в основную форму, когда нажимаю соответствующую кнопку:
ucBeheer ucBeheer = new ucBeheer();
splitContainer1.Panel2.Controls.Add(ucBeheer);
Изнутри моего usercontrol
, когда я выполняю действие, я бынравится обновлять lblStatus
.Я попытался добавить следующее свойство в мою основную форму:
public string updateStatus
{
get { return lblStatus.Text; }
set { lblStatus.Text = value; }
}
И затем получить доступ к методу, как этот в моем пользовательском элементе управления:
frmMain mainForm = new frmMain();
mainForm.updateStatus = "This is a test";
Но это не работает, язнаете, что это потому, что я делаю новый объект из моего frmMain
, но я не знаю, как решить это иначе?
Я также нашел следующим образом , сEvent Handler
, но я не могу этого сделать, потому что мой пользовательский элемент управления на самом деле еще не находится в моей mainForm, пока я не добавлю его туда нажатием кнопки, поэтому у меня нет ссылки на него.
Итак, у меня немного идей, я надеюсь, что кто-нибудь сможет мне помочь.Спасибо, Томас
Редактировать: Итак, мне удалось сделать это следующим образом:
frmMain owningForm = (frmMain)this.Parent.Parent.Parent.Parent;
owningForm.updateStatus = "This is a test";
но this.Parent.Parent.Parent.Parent...
на самом деле не кажется мне хорошим кодированием, есть ли другой способполучить самый верхний родитель?