17

/ボタンとチェックボックスMessageBoxを持つを作成したいと思います。YesNo

アプリケーションは画像リサイズであり、一度に多数の画像のサイズを変更します。その過程で、新しい場所のファイル名が存在するかどうかを上書きするオプションで確認します。

MessageBox、必要に応じて新しいファイルを上書きするオプションをユーザーに提供しますが、チェックボックスは、すべてのファイルを上書きする場合にYes x回クリックする必要がないようにします。

MessageBoxダイアログにチェックボックスを追加するにはどうすればよいですか?

4

3 に答える 3

20

カスタム ダイアログを作成します。ここにあなたのアイデアを与えることができるものがあります:

public static class CheckboxDialog
{   
    public static bool ShowDialog(string text, string caption)
    {
        Form prompt = new Form();
        prompt.Width = 180;
        prompt.Height = 100;
        prompt.Text = caption;
        FlowLayoutPanel panel = new FlowLayoutPanel();
        CheckBox chk = new CheckBox();
        chk.Text = text;
        Button ok = new Button() { Text = "Yes" };
        ok.Click += (sender, e) => { prompt.Close(); };
        Button no = new Button() { Text = "No" };
        no.Click += (sender, e) => { prompt.Close(); };
        panel.Controls.Add(chk);
        panel.SetFlowBreak(chk, true);
        panel.Controls.Add(ok);
        panel.Controls.Add(no);
        prompt.Controls.Add(panel);
        prompt.ShowDialog();
        return chk.Checked;
    }
}

次のように使用できます。

bool overwrite = CheckboxDialog.ShowDialog("overwrite", "Overwrite location?");
于 2013-06-30T00:26:06.060 に答える