tableLayoutPanel和数据表绑定CheckBox的问题?

时间:2016-06-12 17:45:21

标签: c# winforms visual-studio-2010 windows-forms-designer

我有一个Windows Form,在checkboxes中显示tableLayoutPanel列表。

正在显示复选框,但它们之间的间距非常奇怪。 tableLayoutPanelMsgs.ColumnCount设置为1。

这是我的代码:

DataTable messagesTable = ds.Tables[0];

foreach (DataRow row in messagesTable.Rows)
{
    CheckBox ck = new CheckBox();
    ck.Text = row[1].ToString();
    tableLayoutPanel1.Controls.Add(ck);
}

这是Windows窗体中复选框的外观。注意每个复选框之间的间距。 enter image description here

我该如何解决这个问题?再次感谢。

2 个答案:

答案 0 :(得分:2)

您需要设置RowStyle

请参阅随附的屏幕截图以设置Properties

enter image description here

必须至少有一行,你需要设置它的风格。其余行将自动添加,默认样式为AutoSize

答案 1 :(得分:0)

为添加的每个复选框致电SetRow,将其放入tableLayoutPanel1内的单独行:

DataTable messagesTable = ds.Tables[0];
int I = 0;

tableLayoutPanel1.RowCount = messagesTable.Rows.Count;

foreach (DataRow row in messagesTable.Rows)
{
    CheckBox ck = new CheckBox();
    ck.Text = row[1].ToString();
    tableLayoutPanel1.Controls.Add(ck);
    tableLayoutPanel1.SetRow(ck, i++);
}