当单击CustomizedMessageBox上的Ok时,主表单被停用

本文关键字:表单 单击 CustomizedMessageBox 上的 Ok | 更新日期: 2023-09-27 17:53:42

我创建了一个CustomizedMessageBox,这是一个继承表单。
我在customizedMessageBox中做了静态SHOW()方法,它接受标题,消息,图标,按钮等。

我的问题是,当我点击CustomizedMessageBox的'OK'时,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    
  }    
}  

当单击CustomizedMessageBox上的Ok时,主表单被停用

你可以得到一个dialgresult,一旦OK被点击,再次给出你的父焦点。例如

if (CustomizedMessageBox.Show() == DialogResult.OK)
{
   this.Focus();
}