TextBox と Button を貼り付ける

空のプロジェクトで ToolBox からボタンとテキストボックスを貼り付けます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 空のプロジェクトから Form を作成して下さい。
    詳細は Form を作成する を参照して下さい。
    最近のプロジェクトでは[Windows][空のプロジェクト]が選択出来なくなりました。
    そのときは TextBox を参照して下さい。
  2. [デザイン] を表示して、[ツールボックス] から [TextBox] と [Button] をフォームに貼り付けます。
    TextBox と Button を貼り付けるソースコード「InitializeComponent()」がファイルに追加されます。
  3. プロパティウインドウの [イベントアイコン](稲妻型)をクリックしてボタンのイベント一覧を表示します。
  4. 一覧にある [Click] の右にあるコンボ ボックスに「button1_Click」と入力して [Enter] キーを押します。

  5. プログラムファイルにイベントメソッドが追加されます。
    ここに TEXT を取得して str に格納するコードを設定します。
    Invalidate() でウインドウを再描画するために Paint メソッドを呼び出します。
    str に格納した文字列を確認するために、MessageBox で表示しています。
        private void button1_Click(object sender, EventArgs e)
        {
            str = textBox1.Text;
            Invalidate();
            MessageBox.Show(str,"Button Click");
        }
        
  6. 表示する TEXT を格納する string str を MyForm の始めに定義します。
    TextBox と Button が定義されている前後ぐらいに追加して下さい。
    初期値として「Windows」を表示してみました。
        private Button button1;
        private TextBox textBox1;
        private string str = "Windows";
        
  7. MyForm の Constructor から InitializeComponent() を呼び出して下さい。
    続いてウインドウを描画する MyHandler メソッドを設定します。
        public MyForm()
        {
            InitializeComponent();
            Paint += new PaintEventHandler(MyHandler);
        }
        
  8. TEXT を表示する MyHandler メソッドです。
    button1_Click と同じ要領で追加して下さい。
    詳細は Windowsと表示する を参照して下さい。
        private void MyHandler(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Font f = new Font("MS 明朝", 40);
            g.DrawString(str, f, Brushes.Blue, new PointF(10F, 80F));
        }
        
  9. TextBox にメッセージを入力して Button をクリックすると青色の大きな文字でウインドウに表示されます。
    完成したプログラムを CLI の環境で実行すれば「ソースプログラム一本」だけで動きます。

TextBox のタイプを直接検出

  1. Button を使わずに TextBox へのタイプ入力を直接検出する方法もあります。
    タイプ入力の検出は textBox1.KeyDown を使うのですが、キーを一件タイプする度にイベントが発生します。
    そこで Enter キーを捕まえて、TextBox の更新処理を行います。
  2. textBox1 の KeyDown イベントハンドラを設定します。
    ツールボックスから張り付けたときは、稲妻アイコンをクリックして設定します。
    textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
  3. KeyDown イベントハンドラでは、更新された Text を MessageBox に表示してみました。
    この例では、Enter キーはまだ格納されていません。
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {   if (e.KeyCode == Keys.Enter)
            {   MessageBox.Show(textBox1.Text);  }
        }
    

【演習】

  1. 自動的に作成された InitializeComponent() メソッドの内容を確認して下さい。
  2. 設定されている幾つかの値を変更して、その意味を理解して下さい。

【NOTE】

TextBox には、自動的に ContextMenu が設定されます。
何か適当な文字列をタイプして、右クリックしてみて下さい。
[コピー/削除/貼り付け/・・・」など、便利なメニューが表示されます。
Windows8.1 評価版/Visual Studio Professional 2013 Preview の環境で確認しました。

所が RichTextBox では ContextMenu が設定されません。
RichTextBox は Text File 参照して下さい。
アプリの例は Text Editor を参照して下さい、

超初心者のプログラム入門(C# Frame Work)