[英]How to minimize a winforms app when there is at least one modal window opened
我在Winforms應用程序中有兩個表單類(Form1和Form2)。
Form1是這樣的:
Form2是這樣的(ShowInTaskbar = false):
這個代碼在Form1上:
Form2 someForm = new Form2();
private void btOpenAnotherWindow_Click(object sender, EventArgs e)
{
if (someForm.ShowDialog(this) == DialogResult.OK)
MessageBox.Show("OK!!!");
else
MessageBox.Show("Not OK.");
}
也就是說,一個帶有按鈕的窗口,在單擊時以模態方式打開另一個窗口,並等待用戶關閉第二個窗口(通過單擊“確定”或“取消”按鈕)。 並根據它是如何關閉的,執行交替操作(此處由MessageBox.Show()調用表示)。
我需要:
以上示例以兩種方式失敗:
單擊最小化按鈕之前:
后:
注意:
Form2是一個完整的窗口(本身不是一個對話框窗口),我需要用戶與它進行交互,直到它關閉,我還需要用戶能夠在需要時將整個應用程序縮小。
遺憾的是我無法在這里發布真實的形式,這將比這些模型更清晰。
我需要一個適用於多級模態窗口的解決方案(不僅如本例所示,還有兩個)。 有什么建議?
我可能需要更多關於你在這里嘗試做什么的信息。 我有一個簡單的表單(Form1),上面有一個按鈕,調用此代碼:
private void button1_Click(object sender, EventArgs e)
{
Form1 form2 = new Form1();
form2.ShowDialog();
}
當我單擊按鈕時,我得到了相同表單的第二個實例,但它是模態的。 我仍然可以選擇最小化第二個模態形式(我顯然不能與第一個形式交互),當我最小化第二個形式時,它確實最小化了整個應用程序(兩種形式)。 現在顯然你在問這個問題,所以我不認為我理解你。 =)你希望改變這種情況怎么樣?
可能有一些方法可以使用API調用破解這個功能,但我可能會建議在主窗體中使用控件而不是實際窗口進行某種類型的疊加。 這將允許您使其“模態”並仍然能夠最小化/調整主窗口的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.