我有加載UserControl的MainForm。此UserControl幾乎沒有文本框和保存按鈕。一旦我點擊保存,信息從文本框被保存到文件。我想通知MainForm信息已更新爲可重新加載。如何在UserControl執行方法調用時通知父控件?
我該怎麼做?
我有加載UserControl的MainForm。此UserControl幾乎沒有文本框和保存按鈕。一旦我點擊保存,信息從文本框被保存到文件。我想通知MainForm信息已更新爲可重新加載。如何在UserControl執行方法調用時通知父控件?
我該怎麼做?
使用事件。
在UserControl
聲明的事件,例如:
public event EventHandler SaveClicked;
然後保存點擊,引發該事件:
if (this.SaveClicked != null)
{
this.SaveClicked(this, EventArgs.Empty);
}
,並最終在主要形式,以你的事件附加一個處理程序:
...
YourUserControl ctrl = new YourUserControl();
ctrl.SaveClicked += (sender, e) =>
{
// Put logic of your main form here
};
其實這不是一個棘手的部分。看到這個討論:http://stackoverflow.com/questions/786383/c-sharp-events-and-thread-safety – ken2k 2011-12-26 10:25:21
謝謝...作品 – eugeneK 2011-12-26 10:28:02
@ ken2k這是非常有趣的 - 我會刪除我原來的評論,它現在對我來說似乎不準確(請閱讀Essential C#3.0中的這篇文章,Michaelis - 有趣的是專家們可能會錯的)。 – Adam 2011-12-26 10:36:48