C# 单击CustomizedMessageBox上的“确定”时,主窗体将被停用

C# 单击CustomizedMessageBox上的“确定”时,主窗体将被停用,c#,.net,winforms,messagebox,C#,.net,Winforms,Messagebox,我已经创建了一个CustomizedMessageBox,它是一个继承的表单。 我在customizedMessageBox中创建了静态SHOW()方法,它接受标题、消息、图标、按钮等 我的问题是,当我单击CustomizedMessageBox的“确定”时,调用CustomizedMessageBox.Show(…)的主窗体被停用,即我系统上的其他应用程序获得焦点 这种情况并不总是发生,但至少调用了4-5次CustomizedMessageBox。请建议我该怎么做 我在互联网上读到设置MDIP

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

我的问题是,当我单击
CustomizedMessageBox
的“确定”时,调用
CustomizedMessageBox.Show(…)
的主窗体被停用,即我系统上的其他应用程序获得焦点

这种情况并不总是发生,但至少调用了4-5次
CustomizedMessageBox
。请建议我该怎么做

我在互联网上读到设置
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    
  }    
}  

您可能会得到一个对话框结果,单击OK后,再次将焦点交给您的家长。比如说

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

请出示(!)相关代码。您好,正在扫描。。。。没有密码?我要离开了。您好,需要其他代码详细信息吗?请检查是否处理了任何事件(OnClose、OnDeactivate等)。当您将Enabled属性设置为false而不是将其留给ShowDialog()时,会发生这种情况。您的代码片段不足以诊断该问题或推荐替代方案。