MDI Child Controls暂停事件

时间:2014-04-22 09:49:08

标签: c# events mdi

我有一份包含2个mdi儿童表格的MDI表格。在子窗体上,我有一个共享的usercontrol(数据网格),并且usercontrol的工作方式完全相同,除了一个窗体上的过滤器。

一切正常,但是,我确实遇到了事件问题。我创建了几个事件处理程序来检测数据上发生的保存/搜索/加载等事情。但是,我不希望两个子表单都例如触发搜索事件。如果我在ChildForm1上搜索数据,我也不希望ChildForm2触发搜索事件。

我尝试使用Visible和IsAccessible来检测用户控件是否位于Mdi表单的前面,但这不起作用。

另一个选择是查看父级是否是活动的Mdi表单,但是,我有时会将几个小组作为父级等。这使得它成为未来开发或其他方案的难点解决方案。

有什么建议吗?

编辑:我目前正在做的是:

       private void TransactionLoad_Event(object sender, EventArgs e)
    {
        if (loading) return;

        Form parentForm = this.FindForm(); 
        Form mdiParentForm = (Form)this.TopLevelControl; 

        if (mdiParentForm != null && parentForm != null && mdiParentForm.ActiveMdiChild == parentForm)
            LoadTransactions();
    }

感谢尤金。

0 个答案:

没有答案