Visual C# を使用して実行時に Windows フォームにコントロールをプログラムで追加する
この記事では、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. }
注:
Visual Studio でコードを変更する必要があります。 Windows フォーム プロジェクトを作成すると、Visual C# は既定で 1 つのフォームをプロジェクトに追加します。 このフォームの名前は Form1 です。 フォームを表す 2 つのファイルには、 Form1.cs と Form1.designer.cs という名前が付 けられます。 Form1.csでコードを記述します。 Designer.cs ファイルは、コントロールを追加して実行したすべてのアクションを実装するコードをWindows フォーム Designerが書き込む場所です。 Visual C# のWindows フォーム Designerの詳細については、「プロジェクトの作成 (Visual C#)」を参照してください。
フォームとコントロールのプロパティをカスタマイズする
イベント プロシージャを
Form1_Load
見つけて、次のコードをプロシージャに追加して、フォーム コントロールの外観をカスタマイズします。//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;
Button コントロールの外観を
Form1_Load
カスタマイズするには、次のコードをイベント プロシージャに追加します。//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);
で TextBox コントロールの外観をカスタマイズするには、次のコードを
Form1_Load
追加します。this.txtBox.Text = "Text"; this.txtBox.Location = new System.Drawing.Point(10, 25); this.txtBox.Size = new System.Drawing.Size(70, 20);
で ListBox コントロールの外観をカスタマイズするには、次のコードを
Form1_Load
追加します。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);
で CheckBox コントロールの外観をカスタマイズするには、次のコードを
Form1_Load
追加します。this.chkBox.Text = "Disable"; this.chkBox.Location = new System.Drawing.Point(15, 190); this.chkBox.Size = new System.Drawing.Size(110, 30);
次のコードを追加して、 の Label コントロール
Form1_Load
の外観をカスタマイズします。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);
フォームにコントロールを追加する
次のコードを追加して、 の末尾
Form1_Load
にあるフォームの配列に各オブジェクトControls
を追加します。//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);
プロジェクトを保存します。
動作することを確認する
サンプルが機能することを確認するには、[デバッグ] メニューの [開始] を選択します。
注:
- フォームとコントロールは表示されますが、現在、イベント ハンドラーを記述していないため、何も行いません。
- これらのコントロールの位置は静的であることを忘れないでください。 フォームのストレッチ時に堅牢にするには、フォームの位置を基準にしてポイントを動的にします。 コントロールが静的な場合、フォームをストレッチすると、フォーム上の他のコントロールの表示が妨げられる可能性があります。
関連情報
プログラムによるコントロールの使用の詳細については、Visual Studio .NET Online ヘルプ ドキュメントの Visual C# セクションまたは Visual Studio Online ヘルプ ドキュメントの 「Windows アプリケーション 」トピックを参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示