1. ホーム
  2. c#

[解決済み] Windows フォームでのプロンプトダイアログ

2022-07-06 08:22:49

質問事項

私は System.Windows.Forms を使用していますが、不思議なことに作成する機能がありません。

javascriptのプロンプトダイアログのようなものを、javascriptなしで得るにはどうしたらよいでしょうか。

MessageBoxはいいのですが、ユーザーが入力を入力する方法がありません。

ユーザーに可能な限りのテキスト入力をさせたいのですが。

どのように解決するのですか?

独自のプロンプトダイアログを作成する必要があります。このためのクラスを作成するとよいでしょう。

public static class Prompt
{
    public static string ShowDialog(string text, string caption)
    {
        Form prompt = new Form()
        {
            Width = 500,
            Height = 150,
            FormBorderStyle = FormBorderStyle.FixedDialog,
            Text = caption,
            StartPosition = FormStartPosition.CenterScreen
        };
        Label textLabel = new Label() { Left = 50, Top=20, Text=text };
        TextBox textBox = new TextBox() { Left = 50, Top=50, Width=400 };
        Button confirmation = new Button() { Text = "Ok", Left=350, Width=100, Top=70, DialogResult = DialogResult.OK };
        confirmation.Click += (sender, e) => { prompt.Close(); };
        prompt.Controls.Add(textBox);
        prompt.Controls.Add(confirmation);
        prompt.Controls.Add(textLabel);
        prompt.AcceptButton = confirmation;

        return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
    }
}

と呼び出す。

string promptValue = Prompt.ShowDialog("Test", "123");

更新 :

デフォルトボタン( 入力キー ) とコメントによる初期フォーカスを追加し 別の質問 .