簡體   English   中英

專注於第一個表格

[英]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.

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