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 フォーム アプリケーションを作成する

  1. Visual Studio .NET または Visual Studio を起動し、 WinControls という名前の新しい Visual C# Windows アプリケーション プロジェクトを作成します。 Form1 は既定でプロジェクトに追加されます。

  2. Form1 をダブルクリックして、イベント プロシージャを作成して表示します Form1_Load

  3. クラスにプライベート インスタンス変数を 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#)」を参照してください。

フォームとコントロールのプロパティをカスタマイズする

  1. イベント プロシージャを 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;
    
  2. 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);
    
  3. で 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);
    
  4. で 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);
    
  5. で 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);
    
  6. 次のコードを追加して、 の 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);
    

フォームにコントロールを追加する

  1. 次のコードを追加して、 の末尾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);
    
  2. プロジェクトを保存します。

動作することを確認する

サンプルが機能することを確認するには、[デバッグ] メニューの [開始] を選択します。

注:

  • フォームとコントロールは表示されますが、現在、イベント ハンドラーを記述していないため、何も行いません。
  • これらのコントロールの位置は静的であることを忘れないでください。 フォームのストレッチ時に堅牢にするには、フォームの位置を基準にしてポイントを動的にします。 コントロールが静的な場合、フォームをストレッチすると、フォーム上の他のコントロールの表示が妨げられる可能性があります。

関連情報

プログラムによるコントロールの使用の詳細については、Visual Studio .NET Online ヘルプ ドキュメントの Visual C# セクションまたは Visual Studio Online ヘルプ ドキュメントの 「Windows アプリケーション 」トピックを参照してください。