none
vb。net窗体关闭不了啊? RRS feed

  • 问题

  •  在一个MDI父窗体中有两个子窗体和Dialog对话框,点击窗体1中的‘提交’按钮转到  Dialog窗体,点击Dialog上的‘确定’按钮转到窗体2,同时关掉窗体1。
     

        在点击Dialog窗体中‘确定’按钮事件写了如下几种关闭窗体1的代码:
     
        1.For Each ChildForm As Form In Me.MdiChildren()
                ChildForm.Close()
            Next
          窗体2.show()
     
        2.dim Newform as new 窗体1
        Newform.MdiParent = MDI父窗体
        Newform.close()

        3.unload 窗体1

        4.窗体1.Close()

        5.窗体1.Hide()

        都没有实现关闭窗体的功能。只有在窗体1的‘提交’按钮中写me.close时自身才会关闭,但是我想等dialog弹出时,点击dialog上的‘确定’按钮时再关闭窗体1,或者窗体2显示出来后 关闭窗体1。


                                        请大家赐教! 不胜感激!
    2009年9月8日 7:57

答案

  • 你好!
         实际上第一种思路是可行的,但是你写的有问题:
        1.For Each ChildForm As Form In Me.MdiChildren()   ‘这里不能使用Me,Me代表dialog,dialog并没有MDI子窗体,所以这样什么也关闭不了,这里需要使用MdiParent窗体的实例才可以!
                ChildForm.Close()
            Next
    周雪峰
    2009年9月8日 11:56
    版主
  • 你好!
         你的这行代码:
    dim newform as  new 窗体1
         是构建了窗体1的新的实例,这已经不是过去那个窗体1的实例了,所以没有显示出来!
         你需要使用原来那个窗体1的实例来显示!
    周雪峰
    2009年9月9日 4:20
    版主
  • 不客气啊!

    记得把你认为争取的回复“标记为答复”,这样可以让其他遇到同样问题的人搜索到这个解答,来帮助更多的人!
    周雪峰
    • 已标记为答案 泡沫 2009年9月18日 8:49
    2009年9月11日 5:22
    版主

全部回复

  • 你好!
         实际上第一种思路是可行的,但是你写的有问题:
        1.For Each ChildForm As Form In Me.MdiChildren()   ‘这里不能使用Me,Me代表dialog,dialog并没有MDI子窗体,所以这样什么也关闭不了,这里需要使用MdiParent窗体的实例才可以!
                ChildForm.Close()
            Next
    周雪峰
    2009年9月8日 11:56
    版主
  •       
          1.现在按照您的指导能够实现点击窗体1中的‘提交’按钮转到  Dialog窗体,点击Dialog上的‘确定’按钮转到窗体2,同时已经关掉窗体1。 这个时候我需要点击窗体2上面的‘返回’按钮,跳转到刷新后的窗体1,出现的问题是,窗体1中的datagridview中没有数据!



          2. 还有下面的代码:

    dim newform as  new 窗体1
    newfom .parent=Mdiparent1

    For Each ChildForm As Form In Mdiparent1.MdiChildren() 
                ChildForm.Close()
            Next

    newfom .Visible=true

    这个时候窗体1显示不出来!

    2009年9月9日 2:00
  • 你好!
         你的这行代码:
    dim newform as  new 窗体1
         是构建了窗体1的新的实例,这已经不是过去那个窗体1的实例了,所以没有显示出来!
         你需要使用原来那个窗体1的实例来显示!
    周雪峰
    2009年9月9日 4:20
    版主
  • 按照您的方法能显示出来了,谢谢!
    2009年9月11日 1:40
  • 不客气啊!

    记得把你认为争取的回复“标记为答复”,这样可以让其他遇到同样问题的人搜索到这个解答,来帮助更多的人!
    周雪峰
    • 已标记为答案 泡沫 2009年9月18日 8:49
    2009年9月11日 5:22
    版主
  • 我是新来的,不太知道怎么用这个MSDN,不好意思啊。以后会注意的。
    2009年9月18日 8:50
  • 没有关系啊!
    欢迎常常来这里和大家交流啊!
    周雪峰
    2009年9月18日 11:50
    版主
  • 好的!还有很多要和大家学习的呢
    2009年9月19日 7:05