none
關閉應用程式表單的問題 RRS feed

  • 問題

  • 請教一下:

    我想在執行完一個表單(Form1)後就關閉它(因為我不須要它了)緊接著開啟另一個表單(Form2),但問題是Form1是應用程式的啟動表單導致結果應用程式會結束,From2雖有開啟但又馬上被關掉, 請問一下有沒有什麼辨法解決? 謝謝.

    2006年8月12日 上午 06:53

解答

所有回覆

  • HI,

    視窗程式必須擁有一個主畫面, 無法連主畫面都關閉, 所以您可以採用一個視窗當做主畫面, 再從主畫面開啟Form1, 不用之後關掉, 再另外開發Form2, 這樣就不會有問題了.

    tihs

    2006年8月12日 上午 07:54
  • Hi, 我也是有想過這樣,但我要做的是像類似SQL2005按下去後它會出現一個登入的畫面-連接到伺服器 (也就是我的Form1,登入視窗) 但沒有它背後的SQL Server Management Studio晝面,而是在登入成功後才出現應用程式主畫面(也就是我的Form2).

     

    可以做到登入成功後才顯示應用程式主畫面嗎? 謝謝.

     

     

     

    2006年8月12日 上午 08:41
  • HI,

    如果是這樣的話, 假設Form1是您的啟始視窗, 而Form2是登入畫面, 您只要在Form1_Load事件處理程序中執行:

    Dim f as Form2=new Form2

    f.ShowDialog()

    就可以在Form1出現前先顯示出Form2登入畫面, 當Form2被關閉後, Form1就會出現了, 但是Form1必須要加上判斷Form2到底是被按下確定鍵或是取消鍵關閉的.

    tihs

    2006年8月12日 上午 09:14
  • 2006年8月12日 上午 10:04
    版主
  • 謝謝大家,我知道怎麼用了!
    2006年8月12日 上午 10:16
  • Hi,

    請教一下, 我現在在 啟始視窗(Form1)的 Load裡去new我的登入視窗(From2),並在登入視窗中加入取消鍵(在Click事件裡加入btnCancel.DialogResult = Windows.Forms.DialogResult.Cancel) ,希望若使用者按下取消鍵後整個程式就結束,

    在啟始視窗(Form1)的Load裡我這樣寫:

      
            Dim lg As frmLogin = New frmLogin


            lg.ShowDialog()

            If lg.btnCancel.DialogResult Then
                lg.Close()
                Me.Close()
            End If

     

    結果我在登入視窗中按下取消鍵(而且還要按二下)程式就掛了(專案發生問題,必須關閉), 不知道我這樣寫有沒有錯? 謝謝

    2006年8月13日 上午 05:27
  • HI,

    Dim lg As frmLogin = New frmLogin

    lg.ShowDialog()

    If lg.btnCancel.DialogResult Then
        lg.Close()    '這一行拿掉再試看看
        Me.Close()
    End If

    tihs

    2006年8月14日 上午 04:45
  • 謝謝, 我在登入視窗的取消鍵的Click事件中加了

            btnCancel.DialogResult = Windows.Forms.DialogResult.Cancel
            Me.Close()
    然後在如您所說的在內這主畫面的Load
    事件中拿掉了lg.Close()就好了

     

    2006年8月15日 下午 01:27
  • 謝謝,因為我原本是直接用VS提供的SplashScreen1.vb,不過您提供的方法更好.
    2006年8月15日 下午 01:30