🐉
C# 学習7日目 フォーム コントロール
作成日:
2023/01/15
0
C# 学習7日目 フォーム コントロール
最後はフォーム コントロール
元々、Unityの学習の前段階として、C#の学習を始めたのですが、
Unity学習に入っても、C#を再び勉強することになりそうですので、
C#学習の最後の学習として、Windowsアプリケーションでしか出てこない、
フォーム関係と、習作をやって、Unity学習に移ることにしました。
ボタンクリックでトグルボタンとトグル表示
元のサンプルは、ボタンを押すとラベルの文字とボタンの文字が
変わるだけだったのですが、改造してトグルボタン動作とトグル表示を
するように作ってみました。
本のサンプルを元に改造したのですが、改造で追加した部分は重複的なところがあり、
あまり良いソースコード記述ではないのですが、
何をしているのかわかりやすいと思いこのままにします。
ボタンクリックのサンプルコード
疑似的なフロント画面(スタート画面)と疑似的なプレイ画面を
トグルボタンで行き来します。
using System;
using System.Drawing;
using System.Windows.Forms;
//System.Windows.Formsを継承する使い方
class SampleControl : Form
{
private Label lb;
private Button bt;
private int _playing = 0;
public static void Main()
{
Application.Run(new SampleControl());
}
public SampleControl()
{
this.Text = "ボタンでトグル";
this.Width = 450; this.Height = 100;
lb = new Label();
lb.Text = "フロント画面\nスタートボタンを押してください";
lb.Width = 250;
this.BackColor = Color.WhiteSmoke;
bt = new Button();
bt.Text = "スタートする";
bt.Top = this.Top + lb.Height;
bt.Width = lb.Width;
bt.Parent = this;
lb.Parent = this;
//イベントハンドラを登録
bt.Click += new EventHandler(buttonClick);
}
public void buttonClick(Object sender, EventArgs e)
{
if (_playing != 1)
{
_playing = 1;
this.BackColor = Color.LightBlue;
lb.Text = "プレイ画面\n>>プレイ中<<!";
bt.Text = "プレイをやめて フロント画面へ";
}
else
{
this.BackColor = Color.WhiteSmoke;
_playing = 0;
lb.Text = "フロント画面\nスタートボタンを押してください";
bt.Text = "スタートする";
}
}
}
実行結果
まとめメモ
ボタンで切り替えているのは
・背景色
・ラベルのテキスト
・ボタンのテキスト
です。
次のこの部分が、ボタンクリックイベントとイベント処理の部分を
つなげています。
bt.Click += new EventHandler(buttonClick);
詳しくはデリゲートを学んだほうが良いそうなのですが、
この辺りはUnityのC#学習の中でまた詳しく調べたいと思います。
今読んでいるC#本の中には詳しく書いてありませんでした。
次回の予定
次回は、習作の自作の前に、
もうちょっとだけWindowsフォームについて学習します。
これからゲームアプリとWindowsアプリを作りたい初心者です。
ゲームアプリとWindowsアプリ、共に経験ゼロです。
これからの体験が少しでも参考になれば幸いです。
目指す事
・C言語学習→C#学習
・Unity (C#) の勉強
・Unityゲーム作成
・Windowsアプリ(C#) 作成