专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

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

发布时间:2011-06-23 15:08:07 文章来源:www.iduyao.cn 采编人员:星星草
关于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
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: