我创建了一个CustomizedMessageBox
,这是一种继承的形式
我在SHOW()
中创建了静态customizedMessageBox
方法,该方法接受标题,消息,图标,按钮等。
我的问题是当我点击CustomizedMessageBox
的“确定”时,调用CustomizedMessageBox.Show(...)
的主要表单会被取消激活,即我系统上的其他应用程序会获得焦点。
这种情况并非总是发生,但CustomizedMessageBox
至少被称为4-5次。请建议我该怎么做。
我在网上看到设置MDIParent
可以解决这个问题,但在我的情况下,SHOW方法是静态的,所以我不能使用MDI父子概念。
代码详情如下:
//Calling static show method of Customized Message Box
CustomizedMessageBox.Show("Data Not Found","Title", CustomizedMessageBox.CyButtons.Ok, CustomizedMessageBox.CyIcon.Error);
class CustomizedMessageBox : Form
{
static private CustomizedMessageBox _newMessageBox;
//CyButton and CyIcon are enums defined in CustomizedMessageBox class
static public DialogResult Show(string message, string title, CyButtons mButtons, CyIcon mIcon)
{
//Build Message Box by setting properties of "_newMessageBox"
_newMessageBox.ShowDialog();
//return DiaglogResult
}
}
答案 0 :(得分:1)
你可以得到一个DialogResult,一旦点击确定,再次给你的父焦点。例如
if (CustomizedMessageBox.Show() == DialogResult.OK)
{
this.Focus();
}