Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

VB.net 關閉表單的正確流程

請問一下 我有兩個FORM

我在程式開始時先啟動 FORM1,然後按一個按鈕後開啟FORM2

FORM2用完資料要結束時,我按右上角X結束

該如何正確結束FORM2並釋放資源呢??

PS.FORM2結束後FORM1 是留著的

以上使用 VB.NET 2010

已更新項目:

DEAR 小崴:

因為我在測試的時候發現

Me.Dispose() 在

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

Me.Dispose()

End Sub

這樣表單關閉 但是還是會停滯

就不會像 END 這樣結束掉

為什麼呢QQ?

2 個已更新項目:

DEAR 小崴:

關閉之後 程式還在 DEBUG 狀態

也就是還在執行中

還是我測試方法錯了??

我目前是只開FORM1測試右上角的X

3 個已更新項目:

對耶.....

請問為什麼會這樣呢 QQ?

4 個已更新項目:

公司正版的 2010 企業版.......

我的LOAD 是這樣

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

5 個已更新項目:

另外的程式關閉模式為:最後一個表單關閉時

6 個已更新項目:

小崴 :

您開一個新專案

然後程式關閉模式為:最後一個表單關閉時

然後再CLOSING輸入Me.Dispose()

就視窗關掉然後....卡DEBUG了

2 個解答

評分
  • 小崴
    Lv 4
    1 0 年前
    最佳解答

    這問題你問過幾次了?

    2010-09-13 17:26:59 補充:

    Form2.Closing事件

    Me.Dispose()

    2010-09-13 17:34:20 補充:

    停滯是啥意思 可以說明白一點?

    2010-09-13 17:49:01 補充:

    vb2010的FormClosing 參數

    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

    2010-09-13 17:49:12 補充:

    你的參數

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

    2010-09-13 17:51:26 補充:

    Byval sender 的類型就不一樣

    Handles 後的 MyBase 也不一樣

    我試過 不會停滯

    因該是你的版本不對 或 盜版(vb程式有問題)

    或電腦太慢(應該不會這樣)

    2010-09-13 17:53:43 補充:

    2008 EXPRESS 版的參數也是跟我的一樣

    所以你的怪怪的......

    2010-09-13 17:55:15 補充:

    我又試了跟那沒關係

    我把它改成ME也沒差

    一樣可以關

    不會還在DEBUG狀態

    2010-09-13 17:58:30 補充:

    Load 一樣

    2010-09-13 18:00:59 補充:

    Form Closing 事件沒被觸發時

    就會繼續在DEBUG模式

    Me.Dispose()

    別打成

    Me.Dispose(False)

    2010-09-13 18:43:46 補充:

    Form Load 一樣

    2010-09-14 17:16:44 補充:

    那不要設定成 當最後一個表單關閉時

    Form2 的呼叫可以用

    Form2.ShowDialoag()

    2011-04-05 17:27:17 補充:

    抱歉..

    更正

    GC.Collect() 不用加= =

    參考資料: 別再浪費點數問這問題...
  • 1 0 年前

    Form1呼叫Form2時是不是呼叫Form1的 Hide 方法呢?

    如果是這樣

    Form2在結束時應該將Form1還原

    Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

    Form1.Show()

    End Sub

    然後在Form1裡結束程式

    也就是在Form1裡的按鈕程式裡呼叫Form2之後

    加上

    Me.Close()

    2010-09-13 22:53:55 補充:

    Form1呼叫Form2要用ShowDialog()

    才不會一呼叫就全關了

還有問題?馬上發問,尋求解答。