這最好通過聲明的接口來完成:
public interface IChildCommands {
void Add();
void Save();
void Cancel();
}
而且讓你的MDI子窗體實現:
public partial class Form2 : Form, IChildCommands {
// Right-click IChildCommands in the editor and choose Implement Interface
//...
}
在你的父母,實施點擊事件爲這樣的工具欄按鈕:
private void AddButton_Click(object sender, EventArgs e) {
var child = this.ActiveMdiChild as IChildCommands;
if (child != null) child.Add();
}
如果一個小孩處於活動狀態而不執行該命令,則禁用該按鈕也是一個好主意。您可以通過編寫Application.Idle事件的事件處理程序來執行此操作:
void Application_Idle(object sender, EventArgs e) {
AddButton.Enabled = this.ActiveMdiChild is IChildCommands;
// etc..
}
感謝Hans,我會按照您的建議進行操作,如果發現問題,將會更新您.... – Shax 2010-10-11 09:00:20