最近、シンプルなカスタム メッセージ ボックスを作成しました。ShowDialog() を使用して呼び出される別のフォームです。
DialogResult 値を設定し、this.Hide() を使用してフォームを非表示にする 2 つのボタン YES / NO があります。
ただし、これを行うと、アプリケーション全体が閉じます。これは、this.Close() を使用する場合には発生しません。非表示を選択した理由は、応答が速く見えるためです。閉じるを使用すると、メッセージ ボックス フォームが閉じる前に 2 ~ 3 秒間残ります。
以下はいくつかのコードです:
public static void Init()
{
if (_instance == null)
{
_instance = new MQMessageBox();
_instance.MQButtonYes.Click += MQButtonYes_Click;
_instance.MQButtonNo.Click += MQButtonNo_Click;
}
}
public static DialogResult Show(string caption, string message)
{
Init();
_instance.Caption = caption;
_instance.Message = message;
DialogResult result = _instance.ShowDialog();
return result;
}
private void MQButtonYes_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Yes;
this.Hide();
}
private void MQButtonNo_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.No;
this.Hide();
}
メインフォームから、次のように呼び出されます。
MQMessageBox.Show("Warning", "Hello World");
this.Show(); //Adding this call, will show the main form again. Without this call, the mobile will show the Today Screen making it appear the app has crashed.
主な方法は次のとおりです。
MQMainForm mainForm = new MQMainForm();
Application.Run(mainForm);