4

10 行 2 列の TableLayoutPanel があります。

私の問題は、最初の列にラベルを追加し、他の列にボタンを追加すると、すべてがうまくいくことです。しかし、次の行などに別のラベルとボタンを追加すると、前の行は空になります。私のプログラムは最後に追加された行にしか表示されないようです。

コード:

Label lblProjectName = new Label();
lblProjectName.Text = "test";
lblProjectName.Anchor = AnchorStyles.Left;
Button btnProject = new Button();
btnProject.Text = "Fill In";

tlpProject.Controls.Add(lblProjectName, 0, 0);
tlpProject.Controls.Add(btnProject, 1, 0);

tlpProject.Controls.Add(lblProjectName, 0, 1);
tlpProject.Controls.Add(btnProject, 1, 1);

Tnx!

4

2 に答える 2

2

パネル内のセルごとに新しいコントロールを作成する必要があります。

現在、コードはコントロールを最後の列と最後の行に移動しています。

このようなもの:

for (int i = 0; i < numRows; ++i) {
  Button btnProject = new Button();
  btnProject.Text = "Fill In";
  tlpProject.Controls.Add(btnProject, 1, i);
}

イベント ハンドラもここに追加する必要があります。ハンドラの最後で、オブジェクトの「送信者」をチェックして、ユーザーがどのボタンを押したかを確認する必要があります。

于 2013-02-18T21:16:33.263 に答える
0

Label と Button は、それらを異なるセルに追加している間(したがって異なるコントロール)、単一のコントロールの子にしかならないようです。すべてのセルをラベルとボタンで埋める必要がある場合は、列ごとに 10 個のラベルと 10 個のボタンが必要になります。コードを見てください:

for(int i=0;i<10;i++){
var lblProjectName = new Lable();
lblProjectName.Text = "test";
lblProjectName.Anchor = AnchorStyles.Left;
var btnProject = new Button();
btnProject.Text = "Fill In";

tlpProject.Controls.Add(lblProjectName, 0, i);
tlpProject.Controls.Add(btnProject, 1, i);
}
于 2013-02-18T21:18:28.560 に答える