0

我创建了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    
  }    
}  
4

1 回答 1

1

你可以得到一个 DialogResult 并且一旦点击 OK 再次给你的父母焦点。例如

if (CustomizedMessageBox.Show() == DialogResult.OK)
{
   this.Focus();
}
于 2013-01-15T16:47:41.657 回答