C# TableLayoutPanel使用方法
一、利用TableLayoutPanel类展示表格,以10行5列为例
第1步:在前台创建一个panel,使TableLayoutPanel对象填充其内部。
第2步:创建TableLayoutPanel类,其实例对象名为table
TableLayoutPanel table = new TableLayoutPanel();
第3步:设置列样式,循环显示行
private void Form2_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(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f)); //利用百分比计算,0.2f表示占用本行长度的20%
table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));
table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));
table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));
table.ColumnStyles.Add(new System.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步:设置每一行样式
private void AddRow(string apple, string orange, string banana, string casaba, string sugarcane)
{
try
{
// 动态添加一行
table.RowCount++;
//设置高度,边框线也算高度,所以将40修改大一点
table.Height = table.RowCount * ;
// 行高
table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, ));
// 设置cell样式,增加线条
table.CellBorderStyle = TableLayoutPanelCellBorderStyle.OutsetPartial; int i = table.RowCount - ; Label label1 = new Label();
label1.Text = apple;
label1.Width = ;
label1.Height = ;
label1.Font = new Font("隶书", , FontStyle.Bold);
label1.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(label1, , i); Label label2= new Label();
label2.Text = orange;
label2.Width = ;
label2.Height = ;
label2.Font = new Font("隶书", , FontStyle.Bold);
label2.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(label2, , i); Label label3 = new Label();
label3.Text = banana;
label3.Width = ;
label3.Height = ;
label3.Font = new Font("隶书", , FontStyle.Bold);
label3.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(label3, , i); Label label4 = new Label();
label4.Text = casaba;
label4.Width = ;
label4.Height = ;
label4.Font = new Font("隶书", , FontStyle.Bold);
label4.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(label4, , i); Label label5 = new Label();
label5.Text = sugarcane;
label5.Width = ;
label5.Height = ;
label5.Font = new Font("隶书", , FontStyle.Bold);
label5.TextAlign = ContentAlignment.MiddleCenter;
table.Controls.Add(label5, , i);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.PadRight(, ' '), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
查询某行某列数据
private void button1_Click(object sender, EventArgs e)
{
//查询第4行第4列数据,下标从0开始
int i = ;
int j = ;
Label label = (Label)table.Controls[i * + j];
MessageBox.Show(label.Text);
}

修改某行某列数据
private void 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 即可

好了,本文到此结束,哪里写的不对望读者指出~
最后附上源码:
链接: https://pan.baidu.com/s/1LErYuTmYWdx4F0u7FO3Gxw
提取码: aih9
C# TableLayoutPanel使用方法的更多相关文章
- C# 控件,MenuStrip,statusStrip,contextMenuStrip,ImageList, Listview,MonthCalendar、DataGridView,combobox,textbox,DateTimePicker,treeview,picturebox、toolStrip,radioButton,TableLayoutPanel
一.菜单栏 1)MenuStrip 菜单栏 选择工具栏控件:menuStrip C# Menustrip控件的常用属性用法详解 C#WinForm应用程序——添加菜单栏MenuStrip] 1.通过右 ...
- C#控件列表
ID 类 控件 备注(+窗体 共64个控件) 公共控件 1 Form 属性 方法 事件 2 Button 属性 方法 事件 3 checkbox 属性 方法 事 ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- [WinForm] TableLayoutPanel和FlowLayoutPanel的使用
这篇文章主要跟大家分享下,在配餐系统的开发中,对tableLayoutPanel 和 flowLayoutPanel 控件的使用方法和技巧 ——后附上 测试demo, 相信需要的朋友下载看后能很快的知 ...
- TableLayoutPanel 的使用
VS自带控件TableLayoutPanel的功能应用网上都有资料.下面是使用中的一些问题. 1.动态加载控件时使用SetRowSpan.SetColumnSpan方法会使得界面响应缓慢 解决方案: ...
- tablelayoutpanel内部组件变形
tablelayoutpanel设为dock=full后,最大化或最小化窗口会变形. 解决办法:加入flowlayoutpanel,将tablelayoutpanel放入其中,然后在tablelayo ...
- TableLayoutPanel居中和单元格内元素居中
在后台程序新建一个TableLayoutPanel 添加到form中,默认显示在左上角,想了很多让它居中的办法,在网上找了不少 最好的是: winform要设置控件的位置有3种: 1.控件的ancho ...
- Winform 各种属性、方法、控件
窗体是程序与用户交互的可视界面,窗体也是对象,窗体类定义了生成窗体的模版,实例化一个窗体类就产生了一个窗体. .NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有 ...
- 相关TableLayoutPanel分页显示自定义控件
public partial class AcrossGrid : UserControl { /// <summary> /// 一页数量 /// </summary> ; ...
随机推荐
- 迭代器模块 itertools
无限迭代器 itertools 包自带了三个可以无限迭代的迭代器.这意味着,当你使用他们时,你要知道你需要的到底是最终会停止的迭代器,还是需要无限地迭代下去. 这些无限迭代器在生成数字或者在长度未知的 ...
- 【Django】网页跳转的问题
这两天有个比较奇怪了问题困扰着我,就是网页跳转之后页面没有变化,虽然url已经变了,但是页面还是原来的,只是表单数据清空了 就是http://127.0.0.1:8000/signup_signin/ ...
- 20175126《Java程序设计》第二周学习总结
# 20175126 2016-2017-2 <Java程序设计>第二周学习总结 ## LINUX系统安装好输入法后如何使用? - 相信很多同学在刚接触虚拟机LINUX系统时,会因无法输入 ...
- Laravel5 (cli)命令行执行脚本及定时任务
Artisan是Laravel自带的命令行接口名称,它提供了很多有用的命令想要查看所有可用的Artisan命令,可使用list命令查看: 1 php artisan list 每个命令都可以用help ...
- Django实现微信消息推送
一 所需准备条件 微信公众号的分类 微信消息推送 公众号 已认证公众号 服务号 已认证服务号 企业号 基于:微信认证服务号 主动推送微信消息.前提:关注服务号环境:沙箱环境 沙箱环境地址: https ...
- ant 执行java文件,java文件中含中文,显示乱码
在build.xml文件run target下添加下面一行 <sysproperty key="file.encoding" value="UTF-8" ...
- C# Chart控件教程
一.什么是Micosoft.Chart.Controls Micosoft.Chart.Controls是微软自带的一个图形可视化的组件,可以在Web程序和窗体程序中(Windowsform)中使用. ...
- 从中央仓库下载所想要的jar包
中央仓库地址:https://mvnrepository.com/ 这边我搜索一个commons-logging包作为例子: 点击下面第二个绿色的comons-logging进入这个页面: 一.win ...
- spass按位置编码,进行排序题处理与分析
本范例即需建立Q4_1至Q4_4 等四个变项, 各变量的数值则是排序的内容,共有0.1.2.3.4 等五种可能,0代表该选项没有被受测者选取,1.2.3.4分别代表被受测者指为第一至第四顺位. htt ...
- Re:uxul
Re: Unbelieveable eXperience of University Life