簡體   English   中英

TableLayoutPanel只顯示最后一行 - C#

[英]TableLayoutPanel only shows last row - C#

我有一個有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!

您必須為面板中的每個單元格創建一個控件。

目前,您的代碼正在控件移動到最后一列和最后一行。

像這樣的東西:

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

此處也必須添加任何事件處理程序,在處理程序端,您必須檢查對象的“發送者”以查看用戶按下的按鈕。

當你將它們添加到不同的單元格(因此不同的控件)時,看起來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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM