首页 / C# / c#-如何在表布局面板中动态添加行和列
c#-如何在表布局面板中动态添加行和列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-如何在表布局面板中动态添加行和列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2562字,纯文字阅读大概需要4分钟。
内容图文
![c#-如何在表布局面板中动态添加行和列](/upload/InfoBanner/zyjiaocheng/658/9bfcf47212d8423080d730dcc9847637.jpg)
我正在C#中开发Windows应用程序.我创建了一个Windows窗体,其中添加了一个表格面板控件.在数据库中,我有一个表格,该表格有4列,如书名,书图像,书类别和书子现在我在一个表中有10条记录.
我想在表格面板中显示所有这些数据.我尝试了以下代码.但是我没有得到正确的输出.我必须添加一个图片框控件和三个标签控件,即我必须创建4列,因此列1将具有图片框和其他三列各有一个标签.我尝试的代码为我提供了输出,但这是不正确的.它在所有4列中显示图片框图像,然后是标签.
但是我想显示输出,每个列应包含唯一数据.
码:
public void DynamicGenerateTable(int columnCount, int rowCount)
{
tableLayoutPanel1.Controls.Clear();
//Clear out the existing row and column styles
tableLayoutPanel1.ColumnStyles.Clear();
tableLayoutPanel1.RowStyles.Clear();
//Assign table no of rows and column
tableLayoutPanel1.ColumnCount = columnCount;
tableLayoutPanel1.RowCount = rowCount;
WiCommonFunction.LoadCommonSettings();
ShowInformation show = new ShowInformation();
//ds = show.ShowBookImage();
ds1 = show.ShowBookCategory();
DataTable dt1 = ds1.Tables[0];
for (int i = 0; i < columnCount; i++)
{
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
for (int j = 0; j < rowCount; j++)
{
if (i == 0)
{
//defining the size of cell
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
}
PictureBox picture = new PictureBox();
picture.Size = new Size(220, 180);
picture.SizeMode = PictureBoxSizeMode.StretchImage;
Byte[] byteImage = (Byte[])(dt1.Rows[j]["BookImage"]);
MemoryStream ms = new MemoryStream(byteImage);
picture.Image = Image.FromStream(ms);
Label lblCategory = new Label();
lblCategory.Text = dt1.Rows[j]["CategoryName"].ToString();
Label lblSubCategory = new Label();
lblCategory.Text = dt1.Rows[j]["SubCategoryName"].ToString();
Label lblBook = new Label();
lblBook.Text = dt1.Rows[j]["BookName"].ToString();
tableLayoutPanel1.Controls.Add(picture,i,j);
tableLayoutPanel1.Controls.Add(lblCategory, i, j);
tableLayoutPanel1.Controls.Add(lblSubCategory, i, j);
tableLayoutPanel1.Controls.Add(lblBook, i, j);
}
}
}
请给我建议任何解决方案.谢谢.
解决方法:
您正在将所有四个控件添加到每个单元格中,因为您执行了
tableLayoutPanel1.Controls.Add(picture,i,j);
tableLayoutPanel1.Controls.Add(lblCategory, i, j);
tableLayoutPanel1.Controls.Add(lblSubCategory, i, j);
tableLayoutPanel1.Controls.Add(lblBook, i, j);
对于(i,j)的每个组合.您需要某种switch语句仅将要添加的控件添加到该单元格中,例如
switch(i) {
case 0:
tableLayoutPanel1.Controls.Add(picture,i,j);
break;
case 1:
tableLayoutPanel1.Controls.Add(lblCategory, i, j);
break;
case 2:
tableLayoutPanel1.Controls.Add(lblSubCategory, i, j);
break;
case 3:
tableLayoutPanel1.Controls.Add(lblBook, i, j);
break;
}
内容总结
以上是互联网集市为您收集整理的c#-如何在表布局面板中动态添加行和列全部内容,希望文章能够帮你解决c#-如何在表布局面板中动态添加行和列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。