簡體   English   中英

關閉Windows窗體可用於一種窗體,但不能應用於另一窗體

[英]close windows form works on a form but not on another one

我創建了一個Windows窗體應用程序。

VS2012給我創建了一個form1表單

然后我創建了另一個名為Main表格

form1表單上有一個按鈕可以轉到Main表單

當我使用vs2012運行應用程序時,然后單擊窗體form1右上角的x按鈕,該窗體關閉,我可以開始處理vs。但是問題是當我單擊窗體右上角的x按鈕時從Main表單開始,我無法開始在VS上工作,但是我需要在vs中單擊“ Stop Debugging紅色按鈕,以便能夠輸入vs。

所以我的問題是,當我將此應用程序提供給我的客戶時,當單擊表單右上角的x按鈕時,我需要完全關閉該應用程序,而無需他們去任務管理器並關閉該應用程序。從它的應用程序。

您的應用程序以Form 1開頭,當您關閉它時,您正在關閉該應用程序。 Main只是一個表單,當您關閉它時,您就是在關閉表單。 您需要做的是,轉到Main表單的FormClosing事件並添加

Application.Exit();

進入FormClosing事件並輸入以下代碼:

System.Envirenement.Exit(0);

轉到Main時,對form1做什么? 如果只是為了顯示另一個而將其隱藏,然后關閉另一個,同時僅使form1處於隱藏狀態,則即使Main已關閉, form1也自然會在運行。

聽起來合乎邏輯的事情是,當您關閉Main時,從Main返回form1 ;否則,可以在適當的事件上使用Application.Exit(0)來關閉兩者。

無論哪種情況,如果您提供了一些實際的代碼,都將更容易回答。

更新:

您還可以使用System.Environment.Exit(0) ,但這可能需要更多特權,這可能會或可能不會影響您的情況。 同樣,一些代碼會有所幫助。

關於您的評論,請參閱此答案以獲取有關終止選項的更多信息

問題是因為您的Form1表單仍在運行(隱藏)。
如果僅將Form1用於打開Main窗體。 然后刪除Form1 ,然后在項目的“屬性”中將Main設置為StartUp表單:
Application -> StartUp form

此后,當您關閉Main窗體應用程序時,將正確關閉

如果使用Form1則在關閉Main窗體后也需要關閉Form1
為此使用FormClosed事件處理程序

右鍵單擊窗體->屬性
在“ 事件”選項卡上,選擇“ FormClosing事件”
並編寫這段代碼

private void Main_FormClosing(object sender, FormClosingEventArgs e)
        {
           System.Environment.Exit(0);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM