C# (3) - 変換.tokyo | henkan.tokyo

フォームを半透明にする

フォームを半透明にするには、Opacity プロパティを任意の値に設定します。Opacity プロパティは不透明度を表し、1.00 (100%) で不透明 0.00 (0%) で透明となります。

// フォームの不透明度を 75% に設定する
this.Opacity = 0.75;

フォームの初期表示位置を変更する

フォームの初期表示位置を変更するには、StartPosition プロパティを使用します。StartPosition プロパティには、FormStartPosition 列挙体のメンバを指定します。

通常は、デザイナで初期値として設定します。


// Form1 の新しいインスタンスを生成する
Form1 cForm1 = new Form1();

// フォームの Location プロパティによって決定されます (初期値)
cForm1.StartPosition = FormStartPosition.Manual;

// 画面の中央に表示されます
cForm1.StartPosition = FormStartPosition.CenterScreen;

// Windows の規定位置に表示されます
cForm1.StartPosition = FormStartPosition.WindowsDefaultLocation;

// Windows の規定位置に表示され、サイズも規定のサイズに変更されます
cForm1.StartPosition = FormStartPosition.WindowsDefaultBounds;

// 親フォームの中央に表示されます
cForm1.StartPosition = FormStartPosition.CenterParent;

// cForm1 を表示する
cForm1.Show()

フォーム右上の閉じるボタンを無効にする

通常のフォームには右上に閉じるボタン [X] があります。技術系の掲示板を巡回していると、どうやら ControlBox のボタン (最大化、最小化ボタンなど) はそのままに、この閉じるボタンのみを無効にしたい場合があるようです。この望みを適える方法のひとつとして、Control のウィンドウ クラス (WNDCLASS) を作成する時に Style に CS_NOCLOSE を追加するというものがあります。.NET の場合ですと System.Windows.Forms.Form クラスの CreateParam プロパティをオーバーライドし、System.Windows.Forms.CreateParams の ClassStyle プロパティに SC_NOCLOSE を加えることで実現できます。

// CreateParams プロパティをオーバーライドする
protected override System.Windows.Forms.CreateParams CreateParams {
get {
const int CS_NOCLOSE = 0x200;

System.Windows.Forms.CreateParams createParams = base.CreateParams;
createParams.ClassStyle |= CS_NOCLOSE;

return createParams;
}
}

フォームが最大化された時の位置とサイズを設定

フォームが最大化された時の位置とサイズを設定するには、MaxmizedBounds プロパティを使用します。MaximumSize プロパティが MaxmizedBounds プロパティの Size より小さい場合は、MaxmumSize の大きさになりますので注意してください。

// 最大化した時の位置を X=32, Y=16 に、サイズを 512 x 256 に設定する
this.MaximizedBounds = new Rectangle(32, 16, 512, 256);

// Point 構造体と Size 構造体で指定しても良い
this.MaximizedBounds = new Rectangle(new Point(32, 16), new Size(515, 256));

指定したアプリが終了するまで待つ

// 指定したアプリが終了するまで待つ

using System.Diagnostics ; // for Process

Process process_1 = Process.Start("C:\\BIN\\HPS.exe") ;

process_1.WaitForExit() ;

// Note: WaitForExit() の () 内に数値を記述すると、最大待機時間(単位ms)を指定する
// ことができる。 戻り値は、プロセスが終了した場合 true、それ以外 false 。