当我点击一个菜单时,弹出一个窗口,但我再点此菜单时,它又弹出一个一模一样的窗口,
如何控制子窗口只弹出一个实例?即如何判断此窗口的示例已经存在,如存在就直接show出来。on_menu_click()
{
//如何判断是否存在FormUser 的实例?
FormUser formUser = new FormUser();
formUser.MdiParent = this;
formUser.Show();
}
如何控制子窗口只弹出一个实例?即如何判断此窗口的示例已经存在,如存在就直接show出来。on_menu_click()
{
//如何判断是否存在FormUser 的实例?
FormUser formUser = new FormUser();
formUser.MdiParent = this;
formUser.Show();
}
'如果存在 return True
'否则 return False
Public Function IsExistChildForm(ByVal FormName As String) As Boolean
Me.StateInfo("正在检测目标窗口是否已打开...")
Dim frm As Form
For Each frm In Me.MdiChildren
If frm.Name = FormName AndAlso (Not frm Is Nothing) Then
frm.Activate()
If frm.WindowState = FormWindowState.Minimized Then frm.WindowState = FormWindowState.Normal
Me.StateInfo("目标窗口:" & frm.Text & " 已经打开!")
Return True
End If
Next
Return False
End Function
{
foreach(Form key in this.MdiChildren)
{
if(key.Name.ToUpper() == oForm.Name.ToUpper())
{
key.Focus();
return;
}
}
if(bIsMdiChildren)
{
oForm.MdiParent = this;
}
oForm.Show();
}
Dim mdifrm As Form
For Each mdifrm In Me.MdiChildren
If frm.Text = mdifrm.Text Then
mdifrm.Activate()
Return False
Exit Function
End If
Next
Return True
End Function
{
FrmNewBarQuery FrmNB=new FrmNewBarQuery(); if(this.IsExistChildForm(FrmNB)==false)
{
FrmNB.MdiParent=this;
FrmNB.Show();
}
}
/// <summary>
/// 判断要打开的窗体是否已经是子窗体
/// </summary>
/// <param name="Frm">要打开的窗体</param>
/// <returns>true:是;false:否</returns>
private bool IsExistChildForm(Form FrmOpen)
{
foreach(Form mdiFrm in this.MdiChildren)
{
if (FrmOpen.Text == mdiFrm.Text)
{
FrmOpen.Activate();
return true;
}
}
return false;
}