首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

关于MDI窗体的疑问?解决办法

2012-02-10 
关于MDI窗体的疑问?MDI主窗体为 MDIform子窗体有两个 分别是form1和form2想要得到的效果是: 当我点击form1

关于MDI窗体的疑问?
MDI主窗体为 MDIform 子窗体有两个 分别是form1和form2

想要得到的效果是: 当我点击form1的显示事件时判断form2是否已经打开 打开的话就关闭form2然后再打开form1

相同的当我点击form2的显示事件时,也会判断form1是否已经打开,如果打开的话就关闭form1,然后打开form2

以上求老鸟解答了,谢谢!~

[解决办法]
可通过判断当前激活的窗体是哪个

foreach (Form formInstance in this.MdiChildren)
{
if (formInstance is form1)
{
formInstance.Activate();
this.ActiveMdiChild.Close();
}
if(formInstance is form2)
{
formInstance.Activate();
this.ActiveMdiChild.Close();

}
}
[解决办法]
上面的貌似有逻辑错误 不好意思 直接搬自己的代码也没细看 编辑不了帖子 再发一次吧 

VB.NET code
'Form1显示事件  If F_OpenOnce(Form2) = True Then        Form2.Close()  End If'Form2显示事件  If F_OpenOnce(Form1) = True Then      Form1.Close()  End If  '判断窗体打开函数    Private Function F_OpenOnce(ByVal MyForm As Form) As Boolean        Dim V_Form As Form        For Each V_Form In Me.MdiChildren            If V_Form.Text = MyForm.Text Then                V_Form.Activate()                Return True            End If        Next        Return False    End Function 

热点排行