对于以下问题的任何指导将不胜感激。我应该在哪个MDIParent事件中禁用项目/按钮?活性?在程序启动时,我想要禁用按钮。如果没有活动的MDIChildren,我想要禁用按钮。当我启动子表单时,我想测试该子表单的数据。如果是空白表格,我希望按钮保持禁用状态。我目前在MdiChildActivated事件处理程序中有我的代码。谢谢你的时间。
答案 0 :(得分:0)
我使用Activate Event禁用所有项目/按钮。在MDIChildActive事件中,我测试一个空白表单。如果不是空白,我启用项目/按钮。
答案 1 :(得分:-1)
我会使用MDI Parent表单的MdiChildActivate事件: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.mdichildactivate.aspx
请注意该页面上的评论:
您可以使用此事件执行更新MDI子窗体内容和更改 MDI父窗体中可用的菜单选项等任务,具体取决于MDI子窗体的状态,即:激活。
另请注意,关闭子项时也会调用此事件(来自MSDN): 在MDI应用程序中激活多文档界面(MDI)子窗体或关闭时发生。
这意味着在这种情况下你可以做类似的事情:
menuButton.Enabled =(this.MdiChildren.Length> 0);
或者,如果您需要检查所有子窗体的某些条件,并且如果其中一个子窗口需要启用按钮,则启用该按钮:
void Form1_MdiChildActivate(object sender, EventArgs e)
{
foreach (Form child in MdiChildren)
{
if (IsToolbarButtonNeededForThisForm(child))
{
toolButton.Enabled = true;
break;
}
}
toolButton.Enabled = false;