[英]get focus on first form
我有兩個表單form1和form2。 我使用form1中的按鈕導航到form2。 在form2中我有一個按鈕控件; 點擊按鈕,我顯示messageBox。 當messageBox出現時它也失去了form1的焦點,但我希望它不應該失去form1的焦點。 我不關心form2。
我不認為有一種簡單的方法可以阻止MessageBox獲得焦點,這就是因為MessageBox是一個對話框。 (對話框從程序中獲得焦點,直到它們被關閉)
我能想到的唯一方法是創建一個看起來像MessageBox的新表單,然后使用它。
嘗試這個
if(MessageBox.Show("something")==DialogResult.OK)
{
form1.Focus();
}
要么
if(MessageBox.Show("something")==DialogResult.OK)
{
form1.Select();
}
消息框無法像對話框那樣顯示。 就像Eliran Pe'er所說,你應該像一個帶有標簽和按鈕的消息框一樣制作一個Form,並像這樣使用它。
MessageForm form = new MessageForm.Show();
如果使用ShowDialog,它將與MessageBox相同。
在表單1中,您可以使用TopMost property = true
,以便無論如何都始終保持在最前面。 但這將使您的表格保持在所有其他開放計划之上。
另一種解決方法是在用戶關閉messagebox之后(這不是一個糟糕的選擇),您可以將表單1調用到BringToFront()。 為此,您可以將form1的實例傳遞給Show方法中的form2。 在form2構造函數中使用該參數。
您使用ShowDialog()方法或Show()方法來顯示您的form2? 如果您使用的是ShowDialog()方法,請將其修改為Show()。 因為ShowDialog()方法不允許您將焦點更改為主窗體(form1),直到關閉子窗體(form2)
確保你使用的方法,
form2.Show()
顯示form2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.