none
MDI表單如何讓新開啟的表單保持在最上層呢? RRS feed

  • 問題

  • 請問各位大大~

    Windows XP SP2 + VB.NET 2005 + 開發環境是Windows Form

    請問在MDI表單下要如何讓新開啟的表單保持在最上層呢?
    例如我從Form1中開啟了Form2,然後我要如何讓Form1變為不能作用(除非我把Form2關掉了, Form1才能再作用)~

    謝謝!
    2006年9月9日 上午 11:39

解答

所有回覆

  • 若你是要讓特定的程式要關閉才能操作所有其它的程式

    那你就讓你的form2不要設定mdiparent然後用showdialog的方式!

     

    若你只是要讓你的的form2打開時.不能操作fomr1.那可以自己掛事件的方式完成~

    以下程式使是form1要show出form2的片段!程式在show出form2前,先把自己隱藏起來,且對form2掛了一個formclosed的事件,把自己再show出來!

    Private Sub Cusm_FormClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs)
          MyBase.Show
    End Sub
    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
          Dim form2 As New Form2
          form2.MdiParent = MyBase.MdiParent
          MyBase.Hide
          AddHandler form2.FormClosed, New FormClosedEventHandler(AddressOf Me.Cusm_FormClosed)
          form2.Show
    End Sub
    
    2006年9月9日 下午 05:57
  • 謝謝 Bert Yu,
    依你的第二種方法,我有試了一下,它看起來是Form2出現後,Form1就不見了,
    但是我希望做到的效果是Form1要一直在Form2的後面,但是Form1是不能用的,我目前是用Form1.enabled = flase但是這樣的效能看起來有點延遲,不知道有沒有更好的方法~~~
    謝謝~~
    2006年9月10日 上午 08:38
  • 您好.我試了一下.若只是單純改變enabled的狀態.並不會有延遲的現像!

    而方法應不少,不過這我是我為蠻簡便的一個做法~

    2006年9月10日 上午 11:18