問題1:
判斷If form1.show then

解决方案 »

  1.   

    補充(第一個問題):
    例如:Sub button1_click(send as Object,e as EventArgs)
              dim MyForm as new Form1
              MyForm.Show
          End Sub
    如果用戶按兩次,則會重復打開,但我又不想在用戶按過一次後禁用此按鈕,我該如何判斷?
      

  2.   

    2、mdi窗体卸栽顺序为
      a.mdi的queryunload
      b.各打开子窗体的queryunload
      c.子窗体的unload
      d.mdi窗体的unload
     所以可以在mdi的queryunload设置
      

  3.   

    To:liangxuan1979(不贪)   在Net中你這辦法是行不通的,一個窗體如果不實例化的話,根本就不存在show這個關鍵字,更何況這是一個方法而不是一個屬性!
      

  4.   

    问题2:
    在关闭主窗体时,系统自动先执行每个打开的子窗体的unload和queryunload事件,所以保存或提示工作可以在这两个事件中写。
      

  5.   

    1、你只要不dim new就可以了。
    dim Frm as form
    set frm=form2
    frm.show 
    就不会出现问题2、
       Dim i as intiger
       For i = 0 To Forms.Count - 1
          Debug.Print Forms(i).Name
       Next
      

  6.   

    问题1:
    你可以在模块中定义一个变量(或变量数组)public m_bIfOpened as boolean
    在自窗体中的load事件中
    m_bIfOpened=true
    在unload 事件中
    m_bIfOpened=false
    在按钮事件中
    if not m_bIfOpend then
       dim MyForm as new Form1
       MyForm.Show
    end if
      

  7.   

    对于第一个问题,可以做一个标志变量全局的。
    对于第二个问题,同意 strongfisher 的说法。
      

  8.   

    1.public MyForm as object
    Sub button1_click(send as Object,e as EventArgs)
              if  MyForm =nothing then 
    set  MyForm = new Form1
              MyForm.Show
       endif
    End Sub
    2Dim i as intiger
       For i = 0 To Forms.Count - 1
          Debug.Print Forms(i).Name
       Next================================================================ok?
      

  9.   

    好象有问题吗!如果form1.show,那么你再show它是会被resume 掉的,除非你使用了dim xform as new xxform,如果有就去掉它就可以了
      

  10.   

    1: Private Sub Command1_Click()
     Dim a
     For Each a In Forms
       If a.Name = "Form2" Then
        MsgBox "此form 以存在"
         Exit Sub
        End If
      Next
      Load Form2
      Form2.Show
    End Sub
      

  11.   

    使用Forms集合就行了。。
    Forms是当前所有已经加载的窗体,你可以用循环在集合中查找,用窗体名字判断。如:
        Dim frmItem As Form
        For Each frmItem In Forms
            Debug.Print frmItem.Name
        Next frmItem
    ================================================================
    我是一个兵,来自老百姓。
      

  12.   

    Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
     Dim a As Form
     For Each a In Forms
      ....
      ....
     Next
    End Sub
      

  13.   

    To: wxyq2000(wxyq)還是有問題
    1、這樣不會重復打開同名窗體,但當子窗體關閉後,就再也無法打開子窗體了,而且我也不想用全局變量的方式,這樣太耗資源!
    2、MDI窗體沒有Forms這個屬性可用!
      

  14.   

    重申一次,我是想談論在VB.Net中的實現方法!各位多支持,好象我無法找到froms集合?