2013-07-16 49 views
-1

當我點擊一個按鈕關閉一個窗體上的整個程序(Error1.vb)時,其他窗體不關閉,如果關閉主窗口(form1.vb),整個程序關閉。這裏是我的代碼:整個程序不關閉

Dim proc = Process.GetProcessesByName("Server_Status.vshost") 
    For i As Integer = 0 To proc.Length - 1 
     proc(i).CloseMainWindow() 
    Next i 

而且,如果這能幫助,這裏有我的設置(應用程序,編譯)爲應用程序(截圖):




+1

一對夫婦的快速問答不一定解決您的問題。 1)通過引用.vshost,您的代碼將只關閉由VS調試器運行的進程,而不是生產中的獨立可執行文件。 2)考慮翻轉你的循環,否則在你關閉第一個窗口後,第二個現在是(0),但你的I設置爲1,因此第二個進程不會關閉。將for循環更改爲'For I = proc.Length-1 to 0 step -1' –

回答

0

來自MSDN:

通過在類中放置一個名爲Main的方法,可以將表單用作應用程序中的起始類。在Main方法中添加代碼來創建並顯示錶單。您還需要將STAThread屬性添加到Main方法以使表單運行。當起始表單關閉時,應用程序也關閉。

我認爲這是從winforms模板創建一個新項目時的默認行爲。

請務必閱讀對方的言論,以及:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx

1

你一定要明白,如果你的表格是Form1.vb的,這是你的啓動形式像你說的設置...那麼所有你需要做的如果您想讓程序完全關閉,請致電form1.close()關閉所有內容,即使您有其他窗體上的按鈕,如果您希望程序完全關閉,請致電form2.button1.click事件

編輯:如果你有單獨的線程打開或內存中的任何其他對象將其關閉(可與form1.close關閉interfier())

相關問題