次の方法で共有


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.
    }
    

    Note

    Visual Studio でコードを変更する必要があります。 Windows フォーム プロジェクトを作成すると、Visual C# は既定で 1 つのフォームをプロジェクトに追加します。 このフォームの名前は Form1 です。 フォームを表す 2 つのファイルには、 Form1.csForm1.designer.csという名前が付けられます。 Form1.csでコードを記述します。 Designer.cs ファイルは、Windows フォーム デザイナーが、コントロールを追加して実行したすべてのアクションを実装するコードを記述する場所です。 Visual C# のWindows フォーム デザイナーの詳細については、「プロジェクトの作成 (Visual C#)」を参照してください。

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

  1. 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;
    
  2. 次のコードを 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);
    
  3. 次のコードを追加して、 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);
    
  4. 次のコードを追加して、 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);
    
  5. 次のコードを追加して、 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);
    
  6. 次のコードを追加して、 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);
    

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

  1. 次のコードを追加して、各オブジェクトをフォームの 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);
    
  2. プロジェクトを [保存] します。

動作することを確認する

サンプルが動作することを確認するには、Debug メニューの Start を選択します。

Note

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

関連情報

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