0

CustomizedMessageBox継承されたフォームである を作成しました。タイトル、メッセージ、アイコン、ボタンなどを受け入れる
静的SHOW()メソッドを作成しました。customizedMessageBox

私の問題は、 の [OK] をクリックしたときに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 に答える