1

最近、シンプルなカスタム メッセージ ボックスを作成しました。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);
4

1 に答える 1