C#でフォームアプリケーション

MicrosoftイチオシのVisual C#でフォームアプリケーションを作ってみたいと思います。 最近はVisual Studio for Macなるものもできて、Macでの開発もできるみたいです。
Visual C#には無償版があります。【無償版】Visual Studio の活用法
サイトを辿って、Visual Studio Communityをダウンロードしていただければすぐに使えます。なおご利用にはユーザ登録が必要です。
渥美剛史
Microsoft Visual Studioを立ち上げると、プロジェクトを作成するためのスタートページが開きます。
渥美剛史
「新しいプロジェクトの作成」をクリックし、「Windows フォームアプリケーション(.NET Framework)」を選択して、適当なプロジェクト名をつけ、OKします。
保存場所もこのとき選べます。
渥美剛史
すると、「Form1.cs [デザイン]」のタブに、Windowのアプリケーションでよく見るフォームウィンドウの、何も書いていないものが表示されます。
このウィンドウに、ボタンやプルダウンメニューなどの「コントロール」をグラフィカルに配置していくことが出来ます。

さてここでは、フォームへボタンコントロールを取り付け、ボタンをクリックするとそこに表示されている文字が変化する、という簡単なアプリケーションを作ってみたいと思います。
渥美剛史
左側の側面のタブのうち「ツールボックス」を開きます。
ここには、ボタンやラジオボタン、チェックボックスなどの便利なコントロールが一覧になっています。
このうち、「Button」選択し、「Form1.cs [デザイン]」タブ内のフォームへ、ドラッグ&ドロップします。
渥美剛史
すると、フォーム上に「button1」と表示されたボタンが配置されます。
渥美剛史
ここで一旦右側の側面のタブに目をやりますと、こちらにも幾つかのタブがあることがわかります。
「ソシューションエクスプローラー」を見てみますと、プロジェクトを構成するファイルが一覧されています。
渥美剛史
例えば「Form1.cs」上で右クリック→「コードの表示」を押すと、フォームの動作を設定するコード部が表示されます。
さて、今度はフォーム上のボタンをクリックして選択した状態で、「プロパティ」のタブを開いてみます。
渥美剛史
ここでは、ボタンコントロール「button1」の様々なプロパティが一覧されています。
ボタンのサイズは、GUIでも、端っこをドラッグすることで自由に調整できます。
ボタン上に表示されている文字列を変更したい場合、「Text」プロパティの箇所を書き換えます。
渥美剛史
文字を適当に「Press here」に変えてみました。文字が見切れるので、ボタンのサイズをGUIで調整しました。
さて今度は、アプリ上でこのボタンをクリックしたさいの動作を設定したいと思います。
「プロパティ」タブの、今度はイナズマのアイコンをクリックすると、コントロールにイベントを設定することが出来ます。
渥美剛史
ここでは「Click」にイベントを追加します。適当にイベント名を入力してエンターすると、
渥美剛史
「Form1.cs」の、今度はコード部のタブが自動で開きます。
ボタンのイベントを設定するまでには無かった、先ほど作ったイベント名の「press_button」メソッドが自動生成されます。
フォーム上のボタンを押すと、ここに書かれたコードが実行される仕組みです。
ここでは、「button1」の「Text」プロパティを「Hello, world!」に変更するよう指定したいと思います。

private void press_button(object sender, EventArgs e)
{
	button1.Text = "Hello, world!";
}
さて、ここまでできればもうプログラムは完成です。
Visual Studioの上から2番目のメニューバーから、「▶ 開始」を押して、デバッグします。 渥美剛史
上のようなフォームが立ち上がります。中央のボタンを押すと・・・・
渥美剛史
ボタンの表示が「Hello, world!」に変化しました。とっても簡単ですね。


余談ですが、C言語のひとつ上(インクリメント)でC++、C++のさらにインクリメント(+が4つ)でC#ということらしいですが、
C言語であったようなメインループ部というのは、どこにいったのでしょうか?
Form1.csには、Main()の関数はなさそうですが。。
そこで、「ソシューションエクスプローラー」で「Program.cs」のコードを表示してみます。
渥美剛史
すると、Main関数がありました。ここでApplication.Run()でフォームの表示をしているみたいです。 C++でのゲーム開発などでも、ここのループ部でスリープを入れてリフレッシュレートを制御し、アニメーションを作れるみたいです。 C#だとWPFを使って、XAMLで見た目を制御することでアニメーションを作れるようになっているみたいです。
いずれちゃんと勉強したいと思います・・・・

↑ PAGE TOP