初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Visual C# 2019 入門

17.算数ドリルを作ろう その2

 

今回は [ 算数ドリルを作ろう ] の続きです。

過去に作業したことがある手順については、少しずつ説明を省略していきます。
もし分からなくなったら前のページを読み返してみてください。

 

 

テキストボックスを調整しよう

テキストボックスは初めて使いますね。
実行して入力を試してみましょう。12345 と入力します。

 

テキストボックスに数を入力する

 

 

文字が小さくて左寄りですね。
まず、フォントサイズを大きくします。ラベルの時と同じです。
テキストボックスをクリックして、Size プロパティを 16 に変更します。

 

文字のサイズを大きくする

 

 

続けて文字の配置も変更しましょう。
TextAlign プロパティを Left (左寄り) から Center (中央) に変更します。

 

配置を中央に変更する

 

 

実行してみます。
テキストボックスに入力した文字が大きくなり、中央配置になりました。

 

文字を大きく中央配置にする

 

 

 

Name プロパティを変更しよう

ラベルやテキストボックスをフォームに配置したとき、自動的に名前が付きます。label1 や textBox1 などです。

あつかうオブジェクトが少なければ問題ないのですが、多くなってくるとデザイン画面に戻って名前を確認することになります。
そうならないように、オブジェクトの機能に合わせて名前を変えていくのが望ましいです。

ということでテキストボックス textBox1 の名前を変えてみましょう。
Name プロパティを変更します。

 

テキストボックスの名前を変える

 

名前を InBox としました。これは私が勝手に付けた名前です。
InBox と入力して Enter キーを押します。
するとオブジェクトの名前が InBox になります。

オブジェクトの名前を変更する

 

課題ではないプログラムを作成するときは、もっと分かり易い名前がいいと思います。
自分なりのルールを作って名前を付けていきましょう。

 

 

KeyPress イベント

解答を入力するためのテキストボックスを配置しました。
しかし、配置しただけでは役に立ちません。
入力した値をプログラム内部で使えるようにします。

ここでテキストボックス InBox に対してイベントを用意します。
KeyPress というイベントで、キーボードから文字キーが押されたときに発生します。
まずは実際にやってみて、イベントとはどんなものか体験してください。

 

イベントを用意するため、新しく操作をおぼえましょう。
プロパティの画面に注目です。
ツールバーの中にある2つのアイコンですが、左はプロパティアイコン、
右はイベントアイコンになっています。
今後、この2つのアイコンを切り替えながら作業することが多くなります。

 

プロパティとイベントの切り替え

 

 

それではイベントを用意してみましょう。
イベントアイコンをクリックして、keyPress をダブルクリックします。

 

keypress イベントを作る

 

 

テキストボックスの中で何かキーを押すと、この InBox_KeyPress が呼ばれます。
どんな動きになるのか Console.WriteLine で確認してみましょう。
押したキーは e.KeyChar で、
テキストボックスに入力された内容は InBox.Text で確認できます。
なお + を使えば文字列をつなげることができます。

 

押されたキーを確認する

 

 

実行して 123456 と入力してみましょう。
入力しながら出力ウィンドウを確認すれば、KeyPress の動作がよく分かります。

 

テキストボックスで入力テスト

 

結果を見ると、1の横は空白で、2の横は1が表示されています。
3を入力したときには、InBox.Text に 12 しか入っていないことが分かります。
このことから InBox_KeyPress が呼ばれたとき、
押したキーはまだ InBox.Text に入ってないことが分かりますね。
このように動作をしっかり確認しておくことが、
正しいプログラムを組む助けになります。

 

 

Enter キーで入力確定

答えの入力をどうするか、少し考えてみましょう。
数値だけ入力してもらうと、入力途中なのか完了しているのか分かりません。
入力が完了したという合図が必要です。
今回は Enter キーが押されたら完了したことにします。
InBox_KeyPress の中を次のように変更してください。

 

enter キーの判定

 

If 文を使って (char) Keys.Enter と比較します。これは Enter キーのコードを取得する方法です。
これが入力されたものと同じなら Enter キーが押されたことになります。

InBox.Text = ""
これはテキストボックスの中をクリアしています。

 

 

実行してみましょう。
適当な数字を入力してみて下さい。Enter キーを押すまで入力は続きます。
Enter キーを押すことで入力は確定されます。

enter キーの取得方法