单击两次时如何只加载一次MDI子窗体

时间:2015-03-02 20:03:23

标签: c# .net

我有两种形式。 表格1是MDI父表格,表格2是MDI子表格。 当我单击表单1中的按钮1时,将显示表单2。 当我再次单击按钮1并再次形成2次加载时。 我怎么能阻止它? 我的代码是

        frmCashBook cashbook = new frmCashBook();
        cashbook.MdiParent = this;
        cashbook.Show(); 

1 个答案:

答案 0 :(得分:0)

根据您的代码,每次单击button1时,都会创建一个新的frmCashBook实例并进一步显示。

您需要将声明保留在按钮单击处理程序之外:

frmCashBook cashbook;

进一步将button1点击处理程序替换为:

if (cashbook != null)
        {
            // If cashbook is already instantiated (for the case when button1 is clicked again and again after first click)
            cashbook.Show();
        }
        else
        {
            // If cashbook is not instantiated (for the case when button1 is clicked first time)
            cashbook = new frmCashBook();
            cashbook.MdiParent = this;
            cashbook.Show();
        }

这将确保每当点击button1时,只有第一次点击将创建一个新实例,之后点击将不会创建任何新实例,并且只显示在第一次点击时创建的相同实例。