【C#】WPFアプリケーション入門 #2 入出力と変数・型

はじめに

前回は出力についてやりました。プログラムを処理していくなかで、何も表示されないと正しく動作しているかが分かりません。加えて、アプリだとユーザ目線になって分かりやすく表現できているかも考慮しなければなりません。出力はもちろん大切なのですが、今回扱う入力も大切なものになります。主にユーザからデータを得るための手段の1つで、アプリを操作することにつながります。

お品書き

今回やる内容はこちらです。プロジェクトは新しく作るか、前回追記したメッセージボックスのコードを消しておいてください。

  1. TextBox を使った入力
  2. 変数と型
  3. Button を使った変数の出力

1. TextBox を使った入力

Visual Studio の上部から "表示" をクリックし、"ツールボックス" を開きます。 f:id:takunology:20190629134950j:plain

左側にツールボックスがでてくるので、"コモンWPFコントロール" から "TextBox" をクリックしながらデザインビューへドラッグアンドドロップします。これでアプリのウィンドウにテキストボックスが配置されました。 f:id:takunology:20190629143918p:plain

同じようにして、Button をデザインビューのどこかに配置してください。 これで実行してみると、テキストボックスに文字を入力したり削除したりできます。ボタンもクリックできます。
f:id:takunology:20190629151218p:plain

ただ、これだけでは何も起こらないので、ロジック側でコーディングしていく必要があります。

2. 変数と型

TextBox に入力した文字をどう扱えばいいか。これを解決するのが変数です。
変数はよく「入れ物」と例えられます。データを保持しておくための箱です。この箱には扱えるデータの種類が決まっており、この種類をといいます。変数を使うためには型を指定する必要があります。

int a = 30; // 整数型
double b = 3.14 // 小数型
string c = "こんにちは" //  文字列型

ここに挙げた例以外にも多くの型がありますが、今はそれほど使いません。気になった人は検索してみてください。変数を宣言するには

型 変数名; → 単に変数を用意しておきたい書き方
型 変数名 = データ; → データを変数に入れておきたい書き方

と記述します。変数名は自由に付けられます。C#では日本語も対応していますが、 プログラムの書き方を統一するためのルール (コーディングスタイル) があるので、あまり日本語は扱われません。

3. 変数の出力

まずは TextBox に入力された文字を受け取り、文字列型の変数に保持しておきたいですね。ただ、このままでは TextBox はロジックで認識されません。なので、XAMLビューにて次のように編集します。TextBox の行にて、最後に追記します。

<TextBox ---省略--- Width="120" x:Name="textbox"/>

x:Name="" はそのコントロールを参照できるようにするおまじないです。" " の中はロジックで使用する際の名前を付けます。これをつけておけばロジックで扱えるということを覚えておきましょう。
次に、デザインビューに配置した Button をダブルクリックしてみてください。すると、ロジック側に

private void Button_Click(object sender, RoutedEventArgs e)
{

}

このようなコードが生成されます。このコードは、ボタンがクリックされたときの処理を示しています。{ } の中は上から順番に処理されます。
この中にテキストボックスからの文字を受け取る変数と、それを出力するためのメッセージボックスを記述していきます。

private void Button_Click(object sender, RoutedEventArgs e)
{
    string moji; // 文字列型を保持するための変数 "moji" を宣言
    moji = textbox.Text;  // テキストボックスの文字を "moji" に代入
    MessageBox.Show(moji); // メッセージボックスで "moji" を表示
}

これで実行してみましょう。テキストボックスの文字を変更してボタンをクリックしてみると、記述した文字がそのまま表示されます。
これで デザイン→XAMLC# という流れで開発していく感覚がつかめたと思います。

おわりに

今回で入出力と変数についての使い方が分かったと思うので、次回は型を変換して計算させてみます。

C#好こ