启用/禁用MDIChldren后应用程序变慢

时间:2018-11-28 08:36:52

标签: c# .net winforms

我在我的应用程序中有一个与每个MDI子项关联的Browse表单,用于显示保存的记录。我想在Browse表单激活时禁用除Browse表单以外的所有内容,并在Browse从关闭处启用所有内容,因此我使用了此代码。

Browse激活事件

public static void DisableControls(Form ParentForm, Form ChildForm)
        {
            for (int i = 0; i < ParentForm.Controls.Count; i++)
            {
                if (ParentForm.Controls[i].GetType() != typeof(MdiClient))
                    ParentForm.Controls[i].Enabled = false;
            }
            foreach (Form frm in ParentForm.MdiChildren)
            {
                if (frm != ChildForm)
                    frm.Enabled = false;
            }
        }

Browse闭幕活动

public static void EnableControls(Form ParentForm)
        {
            for (int i = 0; i < ParentForm.Controls.Count; i++)
                ParentForm.Controls[i].Enabled = true;

            foreach (Form frm in ParentForm.MdiChildren)
                frm.Enabled = true;
        }

这很完美,但是如果任何形式的控件很多,则启用或禁用它会花费太多。
我了解问题所在,启用/禁用表单的每个控件都需要花费时间。
有什么办法可以改善我的上述代码?

0 个答案:

没有答案