2017-12-09 17 views
-2

私はボタンをドラッグアンドドロップするのは簡単だと知っていますが、講師はプログラムでボタンを作成することを主張しています。C#ウィンドウアプリケーションでボタンをプログラムで作成するにはどうすればよいですか?

Form1_Loadメソッドでは、単純なボタンを作成するためにどのようなコードを書きますか?

private void Form1_Load(object sender, System.EventArgs e) 
{ 

} 

ロード時にボタンが表示されるようにしますか?

+0

このコードを入れWinFormsのためにこれですか? –

+0

はいそれは窓の形です –

+1

[動的に複数のボタンをwpfウィンドウに追加しますか?](https://stackoverflow.com/questions/5929710/dynamically-add-multiple-buttons-to-wpf-window) –

答えて

1

あなたはそれがWinformsので言ったように、あなたは次の操作を行うことができます...

まず、新しいButtonオブジェクトを作成します。あなたが実行しているユーザーが設定することができます

this.Controls.Add(newButton);

エクストラプロパティ...

newButton.Text = "Created Button"; 
newButton.Location = new Point(70,70); 
newButton.Size = new Size(50, 100); 

あなたの問題を:

Button newButton = new Button();

次に使用して、その関数内でフォームに追加しますあなたがForm_Loadイベントでそれを設定しようとしているということです。その段階でフォームはまだ存在せず、あなたのボタンは上書きされます。ボタンを表示するには、ShownまたはActivatedイベントの代理人が必要です。

あなたForm1コンストラクタの内部例えば、

public Form1() 
{ 
    InitializeComponent(); 
    this.Shown += CreateButtonDelegate; 
} 

あなたの実際のデリゲートは、あなたのボタンを作成し、フォームに追加ところ、このような何かが動作しますです。

private void CreateButtonDelegate(object sender, EventArgs e) 
{ 
    Button newButton= new Button(); 
    this.Controls.Add(newButton); 
    newButton.Text = "Created Button"; 
    newButton.Location = new Point(70,70); 
    newButton.Size = new Size(50, 100); 
    newButton.Location = new Point(20, 50); 
} 
+0

名前空間SimplePiano { パブリック部分クラスForm1:フォーム { Button nb = new Button(); public Form1() { InitializeComponent(); } private void Form1_Load(オブジェクト送信者、System.EventArgs e) { this.Controls.Add(nb); } –

+0

コードを実行してもボタンが表示されません。メソッドの外側にボタンオブジェクトを作成した後、Load()メソッドでthis.controls.add(newButton)を実行しましたが、動作しませんでした。 –

+0

@KurtCamilleri私の編集を参照してください。 – Adriani6

-1

それは簡単です:あなたのeventloadフォーム上

private void Form1_Load(object sender, System.EventArgs e) 
{ 
    Button btn1 = new Button(); 
    this.Controls.add(btn1); 
    btn1.Top=100; 
    btn1.Left=100; 
    btn1.Text="My Button"; 

} 
+0

残念ながら、それは動作しませんでした。 –

+0

なぜですか? @KurtCamilleri。何が問題でしたか? – nAviD

+0

Windowsフォームを実行したときにボタンが表示されませんでした。 –

1

private void Form1_Load(object sender, EventArgs e) 
    { 
     Button testbutton = new Button(); 
     testbutton.Text = "button1"; 
     testbutton.Location = new Point(70, 70); 
     testbutton.Size = new Size(100, 100); 
     testbutton.Visible = true; 
     testbutton.BringToFront(); 
     this.Controls.Add(testbutton); 

    } 
+0

私はすぐにそれをテストします、ありがとう –

関連する問題