1

对于以下问题的任何指导将不胜感激。我应该在哪个 MDIParent 事件中禁用项目/按钮?活性?在程序启动时,我希望禁用按钮。如果没有活动的 MDIChildren,我希望禁用这些按钮。当我启动子表单时,我想测试该子表单的数据。如果它是空白表单,我希望按钮保持禁用状态。我目前在 MdiChildActivated 事件处理程序中有我的代码。谢谢你的时间。

4

2 回答 2

0

我使用激活事件来禁用所有项目/按钮。在 MDIChildActive 事件中,我测试了一个空白表单。如果不是空白,我启用项目/按钮。

于 2010-04-27T20:01:11.443 回答
-1

我会使用 MDI 父表单的 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;
于 2010-04-27T19:57:05.113 回答