本文讲述了c# tablelayoutpanel使用方法!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

本文讲述了c# tablelayoutpanel使用方法!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:
一、利用TableLayoutPanel类展示表格,以10行5列为例
第1步:在前台创建一个panel,使TableLayoutPanel对象填充其内部。
第2步:创建TableLayoutPanel类,其实例对象名为table
- TableLayoutPanel table =newTableLayoutPanel();
第3步:设置列样式,循环显示行
- privatevoidForm2_Load(object sender,EventArgs e)
- {
- // 默认添加一行数据
- table.Dock=DockStyle.Top;//顶部填充
- panel1.Controls.Add(table);
- table.ColumnCount=;//5列
- table.Height= table.RowCount*;//table的整体高度,每行40
-
- table.ColumnStyles.Add(newSystem.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width*0.2f));//利用百分比计算,0.2f表示占用本行长度的20%
- table.ColumnStyles.Add(newSystem.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width*0.2f));
- table.ColumnStyles.Add(newSystem.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width*0.2f));
- table.ColumnStyles.Add(newSystem.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width*0.2f));
- table.ColumnStyles.Add(newSystem.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width*0.2f));
-
- for(int i =; i <=; i++)
- {
- AddRow("苹果"+i.ToString().PadLeft(,''),"橘子"+ i.ToString().PadLeft(,''),"香蕉"+ i.ToString().PadLeft(,''),"香瓜"+ i.ToString().PadLeft(,''),"甘蔗"+ i.ToString().PadLeft(,''));
- }
- }
第4步:设置每一行样式
- privatevoidAddRow(string apple,string orange,string banana,string casaba,string sugarcane)
- {
- try
- {
- // 动态添加一行
- table.RowCount++;
- //设置高度,边框线也算高度,所以将40修改大一点
- table.Height= table.RowCount*;
- // 行高
- table.RowStyles.Add(newSystem.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute,));
- // 设置cell样式,增加线条
- table.CellBorderStyle=TableLayoutPanelCellBorderStyle.OutsetPartial;
-
- int i = table.RowCount-;
-
- Label label1 =newLabel();
- label1.Text= apple;
- label1.Width=;
- label1.Height=;
- label1.Font=newFont("隶书",,FontStyle.Bold);
- label1.TextAlign=ContentAlignment.MiddleCenter;
- table.Controls.Add(label1,, i);
-
- Label label2=newLabel();
- label2.Text= orange;
- label2.Width=;
- label2.Height=;
- label2.Font=newFont("隶书",,FontStyle.Bold);
- label2.TextAlign=ContentAlignment.MiddleCenter;
- table.Controls.Add(label2,, i);
-
- Label label3 =newLabel();
- label3.Text= banana;
- label3.Width=;
- label3.Height=;
- label3.Font=newFont("隶书",,FontStyle.Bold);
- label3.TextAlign=ContentAlignment.MiddleCenter;
- table.Controls.Add(label3,, i);
-
- Label label4 =newLabel();
- label4.Text= casaba;
- label4.Width=;
- label4.Height=;
- label4.Font=newFont("隶书",,FontStyle.Bold);
- label4.TextAlign=ContentAlignment.MiddleCenter;
- table.Controls.Add(label4,, i);
-
- Label label5 =newLabel();
- label5.Text= sugarcane;
- label5.Width=;
- label5.Height=;
- label5.Font=newFont("隶书",,FontStyle.Bold);
- label5.TextAlign=ContentAlignment.MiddleCenter;
- table.Controls.Add(label5,, i);
- }
- catch(Exception ex)
- {
- MessageBox.Show(ex.Message.PadRight(,' '),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
- }
- }
查询某行某列数据
- privatevoid button1_Click(object sender,EventArgs e)
- {
- //查询第4行第4列数据,下标从0开始
- int i =;
- int j =;
- Label label =(Label)table.Controls[i *+ j];
- MessageBox.Show(label.Text);
- }

修改某行某列数据
- privatevoid button2_Click(object sender,EventArgs e)
- {
- //修改第6行第1列数据,下标从0开始
- int i =;
- int j =;
- Label label =(Label)table.Controls[i *+ j];
- label.Text="已修改";
- label.ForeColor=Color.Red;
- }

二、TableLayoutPanel控件属性
1.单元格画线使用CellBorderStyle属性

2.合并单元格,例如一行一列和一行二列合并
首先在一行一列单元格内添加Panel控件,修改器属性ColumnSpan = 2 即可

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。