C# プログラムのユーザーにテキストの入力を求めるために作成した小さなフォームがあります。プログラムがプログラムのあるポイントに到達すると、「数字を入力してください」のようなフォーム内のラベルと、それを入力できるテキストボックスを含むフォームがポップアップします。[OK] を押すことができるボタンがあります。フォームを閉じて、テキストボックスに値を送り返します。2つの問題があります
まず、フォームが表示されたら、カーソルを Textbox に入れて、入力を開始できるようにします。現在、テキストボックスをクリックする必要があります。テキストボックスにフォーカスを合わせるとそれが起こると思ったのですが、以下に示すように、それを試しました。
第二に、誰かがテキストボックスの入力中にリターンを押したときに、フォームにあるボタンがヒットしたかのようにしたいです。フォームは、誰かが OK を押したかのように、end のように行われるすべてのことを行い、Text を送り返します。
Windows XP と Visual Studio 2008 を使用しています。
これは私が持っているコードです:
public static class Prompt
{
public static string ShowDialog(string text, string caption)
{
Form prompt = new Form();
prompt.Width = 600;
prompt.Height = 200;
prompt.Text = caption;
Label textLabel = new Label() { Left = 50, Top = 20, Width = 600, Text = text };
TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
textBox.Focus();
Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70 };
confirmation.Click += (sender, e) => { prompt.Close(); };
prompt.Controls.Add(confirmation);
prompt.Controls.Add(textLabel);
prompt.Controls.Add(textBox);
prompt.ShowDialog();
return textBox.Text;
}
}