這可能是設計行為,但無論如何我都會問 -
我從我的主專案中的另一個專案 dll 中呼叫了一個表單。它不是 Modal (ShowDialog) 或 TopMost,我在創建表單后為表單設定了一個變數(“frm = New ...”),以便我可以檢查它何時已創建(用戶單擊工具列按鈕創建最初。)
表單顯示、觸發事件等都完美無缺。
但是,如果我將表單最小化,然后通過代碼呼叫 frm.Show 將其恢復,則不會發生任何事情。表單保持最小化。
frm.Show 沒有任何影響,并且似乎不會觸發任何其他事件。
恢復它的唯一方法是單擊主表單的任務欄圖示,然后顯示主表單和最小化的表單(作為圖示),然后單擊最小化表單的圖示。
我已經嘗試過各種事件(.Activate、.Show、.ShowDialog、.Focus),除了物理單擊任務欄主應用程式圖示然后選擇它之外,沒有什么能讓其他表單脫離其最小化狀態。
此外,主要應用程式不是 MDI ......
???
謝謝。
uj5u.com熱心網友回復:
通常這應該按照@jimi 的建議進行
[TheForm].WindowState = FormWindowState.Normal
但有時由于某些黑暗原因這不起作用,因此您可以使用其他一些方法
form.Show();
form.BringToFront();
if (form.WindowState == FormWindowState.Minimized)
{
ShowWindowAsync(form.Handle, 9); // 9 = SW_RESTORE
}
我確信其中之一可以解決您的問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/415381.html
標籤:
