この記事では、Visual C# を使用して Windows フォームにコントロールをプログラムで追加および構成する方法について説明します。
元の製品バージョン: Visual C#
元の KB 番号: 319266
まとめ
この詳細な記事では、Windows フォームで一般的に使用されるいくつかのコントロールをプログラムで追加および構成する方法について説明します。 イベント処理はサンプル コードから省略されています。
Microsoft .NET Framework Software Development Kit (SDK) には、Windows フォーム アプリケーションの構築に使用できる多くのビジュアル コントロールが用意されています。 Visual Studio .NET または Visual Studio では、デザイン時にコントロールを追加および構成できます。 実行時にプログラムでコントロールを追加および構成できます。
要件
この記事では、次のトピックについて理解していることを前提としています。
- Visual C# 構文
- Visual Studio .NET 環境、Visual Studio 環境
- 一般的な Visual C# コントロールの目的
Windows フォーム アプリケーションを作成する
Visual Studio .NET または Visual Studio を起動し、 WinControls という名前の新しい Visual C# Windows アプリケーション プロジェクトを作成します。 既定では、Form1 はプロジェクトに追加されます。
Form1 をダブルクリックして、
Form1_Load
イベント プロシージャを作成して表示します。Form1
クラスにプライベート インスタンス変数を追加して、一般的な Windows コントロールを操作します。Form1
クラスは次のように始まります。public class Form1 : System.Windows.Forms.Form { //Controls. private TextBox txtBox = new TextBox(); private Button btnAdd = new Button(); private ListBox lstBox = new ListBox(); private CheckBox chkBox = new CheckBox(); private Label lblCount = new Label(); //Other code. }
Note
Visual Studio でコードを変更する必要があります。 Windows フォーム プロジェクトを作成すると、Visual C# は既定で 1 つのフォームをプロジェクトに追加します。 このフォームの名前は Form1 です。 フォームを表す 2 つのファイルには、 Form1.cs と Form1.designer.csという名前が付けられます。 Form1.csでコードを記述します。 Designer.cs ファイルは、Windows フォーム デザイナーが、コントロールを追加して実行したすべてのアクションを実装するコードを記述する場所です。 Visual C# のWindows フォーム デザイナーの詳細については、「プロジェクトの作成 (Visual C#)」を参照してください。
フォームとコントロールのプロパティをカスタマイズする
Form1_Load
イベント プロシージャを見つけ、次のコードをプロシージャに追加して、Form コントロールの外観をカスタマイズします。//Set up the form. this.MaximizeBox = false; this.MinimizeBox = false; this.BackColor = Color.White; this.ForeColor = Color.Black; this.Size = new System.Drawing.Size(155, 265); this.Text = "Run-time Controls"; this.FormBorderStyle = FormBorderStyle.FixedDialog; this.StartPosition = FormStartPosition.CenterScreen;
次のコードを
Form1_Load
イベント プロシージャに追加して、Button コントロールの外観をカスタマイズします。//Format controls. Note: Controls inherit color from parent form. this.btnAdd.BackColor = Color.Gray; this.btnAdd.Text = "Add"; this.btnAdd.Location = new System.Drawing.Point(90, 25); this.btnAdd.Size = new System.Drawing.Size(50, 25);
次のコードを追加して、
Form1_Load
の TextBox コントロールの外観をカスタマイズします。this.txtBox.Text = "Text"; this.txtBox.Location = new System.Drawing.Point(10, 25); this.txtBox.Size = new System.Drawing.Size(70, 20);
次のコードを追加して、
Form1_Load
の ListBox コントロールの外観をカスタマイズします。this.lstBox.Items.Add("One"); this.lstBox.Items.Add("Two"); this.lstBox.Items.Add("Three"); this.lstBox.Items.Add("Four"); this.lstBox.Sorted = true; this.lstBox.Location = new System.Drawing.Point(10, 55); this.lstBox.Size = new System.Drawing.Size(130, 95);
次のコードを追加して、
Form1_Load
の CheckBox コントロールの外観をカスタマイズします。this.chkBox.Text = "Disable"; this.chkBox.Location = new System.Drawing.Point(15, 190); this.chkBox.Size = new System.Drawing.Size(110, 30);
次のコードを追加して、
Form1_Load
の Label コントロールの外観をカスタマイズします。this.lblCount.Text = lstBox.Items.Count.ToString() + " items"; this.lblCount.Location = new System.Drawing.Point(55, 160); this.lblCount.Size = new System.Drawing.Size(65, 15);
コントロールをフォームに追加する
次のコードを追加して、各オブジェクトをフォームの
Controls
配列にForm1_Load
の末尾に追加します。//Add controls to the form. this.Controls.Add(btnAdd); this.Controls.Add(txtBox); this.Controls.Add(lstBox); this.Controls.Add(chkBox); this.Controls.Add(lblCount);
プロジェクトを [保存] します。
動作することを確認する
サンプルが動作することを確認するには、Debug メニューの Start を選択します。
Note
- フォームとコントロールは表示されますが、イベント ハンドラーを記述していないため、現在は何も行われません。
- これらのコントロールの位置は静的であることを忘れないでください。 フォームを引き伸ばしたときにそれらをより堅牢にするには、フォームの位置を基準にしてポイントを動的にします。 コントロールが静的な場合、フォームをストレッチすると、フォーム上の他のコントロールの表示が妨げられる可能性があります。
関連情報
プログラムによるコントロールの使用の詳細については、Visual Studio .NET Online ヘルプ ドキュメントまたは Visual Studio Online ヘルプ ドキュメントの Visual C# セクションの「 Windows アプリケーション 」トピックを参照してください。