我有两种形式form1和form2。我使用form1中的按钮导航到form2。在form2中我有一个按钮控件;点击按钮,我显示messageBox。当messageBox出现时它也失去了form1的焦点,但我希望它不应该失去form1的焦点。我不关心form2。
答案 0 :(得分:1)
我不认为有一种简单的方法可以阻止MessageBox获得焦点,这就是因为MessageBox是一个对话框。 (对话框从程序中获得焦点,直到它们被关闭)
我能想到的唯一方法是创建一个看起来像MessageBox的新表单,然后使用它。
答案 1 :(得分:1)
试试这个
if(MessageBox.Show("something")==DialogResult.OK)
{
form1.Focus();
}
或者
if(MessageBox.Show("something")==DialogResult.OK)
{
form1.Select();
}
答案 2 :(得分:1)
消息框无法像对话框那样显示。就像Eliran Pe'er所说,你应该像一个带有标签和按钮的消息框一样制作一个Form,并像这样使用它。
MessageForm form = new MessageForm.Show();
如果使用ShowDialog,它将与MessageBox相同。
在您的表单1中,您可以使用TopMost property = true
,无论如何都始终将其保持在最前面。但这将使您的表格保持在所有其他开放计划之上。
另一种解决方法是在用户关闭messagebox之后(这不是一个糟糕的选择),您可以将表单1调用到BringToFront()。为此,您可以将form1的实例传递给Show方法中的form2。在form2构造函数中使用该参数。
答案 3 :(得分:0)
您使用ShowDialog()方法或Show()方法来显示您的form2吗? 如果您使用的是ShowDialog()方法,请将其修改为Show()。 因为ShowDialog()方法不允许您将焦点更改为主窗体(form1),直到关闭子窗体(form2)
确保使用方法,
form2.Show()
显示form2。