フォームサイズの固定化、背景画像の描画など
テーマ2 フォーム名の指定【再掲載】
・System.Windows.Forms.Formクラスには、フォーム名を持つTextプロパティがある ・これを設定すると、見かけ上のアプリ名になる
提出フォロー:演習2 フォーム名の指定
・フォーム名を「Game」にしよう
作成例
//演習2 フォーム名の指定
using System; //フォームアプリケーションに必須
using System.Windows.Forms; //フォームアプリケーションに必須
class Program : Form { //Formクラスを継承
static void Main() { //publicの指定は任意
Program p = new Program(); //継承したフォームのインスタンスを生成
p.Width = 660; //インスタンスのWidthプロパティに幅を代入
p.Height = 520; //インスタンスのHeightプロパティに高さを代入
p.Text = "Game"; //インスタンスのTextプロパティにフォーム名を代入
Application.Run(p); //インスタンスを画面に出す
}
}
テーマ3 フォームサイズの固定化
・フォームの右上には3つのボタンがあり、ControlBoxという。 ・ここで、最大化を可能にしておくと、アプリケーション側で対処が必要 ・よって、ControlBoxを非表示にすることで、最大化を抑止できる ・System.Windows.Forms.Formクラスには、ControlBoxプロパティがあり、これをfalseにすると良い ・しかし、最小化やクローズも出来なくなるので、プログラム側で終了処理を記述する必要がある ・なお、タスクバーでアイコンを右クリックして「ウィンドウを閉じる」でも終了できる ・ControlBoxを非表示にした時、Textプロパティにフォーム名を代入いていないと、ウィンドウバーも消えるので注意(ウィンドウの移動ができなくなる)
演習3 フォームサイズの固定化
・ControlBoxを非表示にして最大化・最小化・クローズを出来なくしよう
作成例
//演習3 フォームサイズの固定化
using System; //フォームアプリケーションに必須
using System.Windows.Forms; //フォームアプリケーションに必須
class Program : Form { //Formクラスを継承
static void Main() { //publicの指定は任意
Program p = new Program(); //継承したフォームのインスタンスを生成
p.Width = 660; //インスタンスのWidthプロパティに幅を代入
p.Height = 520; //インスタンスのHeightプロパティに高さを代入
p.Text = "Game"; //インスタンスのTextプロパティにフォーム名を代入
p.ControlBox = false; //ControlBoxを非表示にする
Application.Run(p); //インスタンスを画面に出す
}
}
テーマ4 メッセージボックス
・フォームアプリケーションにおいて画面上に小さなダイヤログであるメッセージボックスを表示できる ・確認メッセージの表示に用いることが多いが、テスト時の確認用にも便利 ・System.Windows.Forms.MessageBoxクラスの、静的メソッドShow(string)で可能で、引数として表示したい文字列を与える
演習4 メッセージボックス
・起動したら「Hello」と表示するメッセージボックスを表そう ・フォームアプリケーションのMainメソッドで実行する場合は、Application.Run(…)の前に行うこと ・メッセージボックスの表示中はプログラムは待ち状態になる(モーダル)
作成例
//演習4 メッセージボックス
using System; //フォームアプリケーションに必須
using System.Windows.Forms; //フォームアプリケーションに必須
class Program : Form { //Formクラスを継承
static void Main() { //publicの指定は任意
Program p = new Program(); //継承したフォームのインスタンスを生成
p.Width = 660; //インスタンスのWidthプロパティに幅を代入
p.Height = 520; //インスタンスのHeightプロパティに高さを代入
p.Text = "Game"; //インスタンスのTextプロパティにフォーム名を代入
p.ControlBox = false; //ControlBoxを非表示にする
MessageBox.Show("Hello!"); //【追加】メッセージボックスを表示
Application.Run(p); //インスタンスを画面に出す
}
}
テーマ5 描画処理の基礎
・ウィンドウを持つアプリケーションでは、プログラム側からの描画と、システム側からの必要に応じた描画がある
・この両方に対応するために、C#のフォームアプリケーションでは、Formクラスでvoid OnPaint(PaintEventArgs)メソッドを提供している
・この引数のPaintEventArgsはシステム側が提供する「画面を描くための情報」
・フォームアプリケーションではこのメソッドをオーバーライドして、描画処理を記述する(アクセス修飾子はprotecedにすること)
・この時、フォームの基本再描画処理がFormクラスで与えられるので、オーバーライドの冒頭において、FormクラスのOnPaintメソッドの内容を実行すること
・この実行には、PaintEventArgsを引数として渡す
・書式例:
protected override void OnPaint(PaintEventArgs e) { //Formのメソッドをオーバーライド
base.OnPaint(e); //まず、Formクラスにおけるメソッドの内容(基本再描画処理)を実行
:自前の描画処理を書くところ
}
提出:「演習4 メッセージボックス」