如何避免MDIParent C#Win Forms中显示的多个子窗体

pan*_*dra 8 c# mdiparent mdichild winforms

当用户试图打开已在MDIParent中打开的子表单时,我想避免多次出现我的子表单.避免这种情况的一种方法是禁用Controller(在我的情况下是BUTTON),但我也给了这个函数一个快捷键(Ctrl+ L).因此,如果用户键入Ctrl+ L,则会打开相同的子表单,并且我可以看到两个子表单都在MDI中.

private void leadsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        frmWebLeads formWeblead = new frmWebLeads();
        formWeblead.MdiParent = this;
        formWeblead.WindowState = System.Windows.Forms.FormWindowState.Maximized;
        formWeblead.Show();

    }
Run Code Online (Sandbox Code Playgroud)

我想避免这种情况.我怎样才能做到这一点? 在此输入图像描述

在图像中,您可以看到, 当用户第一次使用菜单(LEADS)打开并且第二次通过快捷键打开时,子表单名称 在线潜在客户被打开两次.我不希望这种情况发生.如果表单已经打开,应该避免打开另一个相同的表单......怎么做?

she*_*fly 4

如果我只应该打开一个,我通常这样做的方式是这样的:

//class member for the only formWeblead
frmWebLeads formWebLead = null;

private void leadsToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (formWebLead == null)
    {
        formWeblead = new frmWebLeads();
        formWeblead.MdiParent = this;
    }

    formWeblead.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    formWeblead.Show();
}
Run Code Online (Sandbox Code Playgroud)