2017-03-16 13 views
0

ボタンをクリックしたときにパネルにコントロールを動的に追加したい。しかし、私はポジションを整理したい。たとえば、2つのテキストボックスを横に並べて、パネルの等しいスペースを取って同じにしたいとします。下の図を参照してください。.NETウィンドウのTableLayoutPanelに動的コントロールを追加する

enter image description here

ボタンがクリックされたときに、上の写真で見ることができるように、コントロールが追加されます。しかし、私はTableLayoutPanelの使用に問題があります。以下の私のコードを見てください。

private void btnAddOption_Click(object sender, EventArgs e) 
     { 
      TextBox tb1 = new TextBox(); 
      tb1.Text = "Cell 1"; 
      TextBox tb2 = new TextBox(); 
      tb2.Text = "Cell 2"; 


      TableLayoutPanel rowLayout = new TableLayoutPanel(); 
      rowLayout.ColumnCount = 2; 
      rowLayout.RowCount = 1; 

      //want to add tb1 to cell 1 and tb2 to cell 2 of TableLayoutPanel   

      panelFoodOptions.Controls.Add(rowLayout); 

     } 

私のコードでわかるように、私は何をしたいとコメントしました。これらは私の問題です。

私は動作しません。この

rowLayout.Controls.Add(tb1); 
rowLayout.Controls.Add(tb2); 

したがって、上記の方法を試してみました。そこでレイアウトのセルを得る方法を試しました。しかし、私は問題を抱えています。下の図を参照してください。

enter image description here

あなたはスクリーンショットで見ることができるように、私はセルを取得するには、子コントロールを渡す必要があります。しかし、私は細胞にコントロールを加えていない。私は、それぞれの位置を取得するセルにコントロールを追加したい。私が望むセルにどのようにコントロールを追加できますか?

+0

(http://stackoverflow.com/questions/ [Windowsフォームを使用して魔方陣を作成するには?] 33968993/how-to-create-a-magic-square-using-windows-forms) –

答えて

1

あなただけControls.Addメソッドを使用してコントロールの列と行を指定する必要があります。

rowLayout.Controls.Add(tb1, 0, 0); 
rowLayout.Controls.Add(tb2, 0, 1); 
+0

ありがとうございました。出来た。 :) –

+0

@WaiYanHeinあなたの歓迎、次回はあなたが使用しているメソッドのオーバーロードをチェックすることを忘れないでください:) –

関連する問題