实例1、用TableLayoutPanel 制作表格

简介: 实例1、用TableLayoutPanel 制作表格

tt.png

声明TableLayoutPanel对象


  /// <summary>


       /// TableLayoutPanel


       /// </summary>


TableLayoutPanel table = new TableLayoutPanel();


添加控件和事件


 private void Form2_Load(object sender, EventArgs e)


       {


           // 默认添加一行数据


           table.Dock = DockStyle.Top;     //顶部填充


           panel1.Controls.Add(table);    


           table.ColumnCount = 5;          //5列


           table.Height = table.RowCount * 40; //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 = 1; i <= 10; i++)


           {


               AddRow("键盘侠"+i.ToString().PadLeft(2,'0'),"蜘蛛侠" + i.ToString().PadLeft(2, '0'), "钢铁侠" + i.ToString().PadLeft(2, '0'), "猪猪侠" + i.ToString().PadLeft(2, '0'), "死猪佩奇" + i.ToString().PadLeft(2, '0'));


           }


       }



       private void AddRow(string apple, string orange, string banana, string casaba, string sugarcane)


       {


           try


           {


               // 动态添加一行


               table.RowCount++;


               //设置高度,边框线也算高度,所以将40修改大一点


               table.Height = table.RowCount * 44;


               // 行高


               table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40));


               // 设置cell样式,增加线条


               table.CellBorderStyle = TableLayoutPanelCellBorderStyle.OutsetPartial;



               int i = table.RowCount - 1;



               Label label1 = new Label();


               label1.Text = apple;


               label1.Dock = DockStyle.Fill;


               label1.BackColor = Color.Red;


               label1.Click += Label1_Click;


               label1.Font = new Font("楷体", 13, FontStyle.Regular);


               label1.TextAlign = ContentAlignment.MiddleCenter;


               table.Controls.Add(label1, 0, i);



               Label label2= new Label();


               label2.Text = orange;


               label2.Width = 200;


               label2.Height = 40;


               label2.Click += Label1_Click;


               label2.Font = new Font("楷体", 13, FontStyle.Regular);


               label2.TextAlign = ContentAlignment.MiddleCenter;


               table.Controls.Add(label2, 1, i);



               Label label3 = new Label();


               label3.Text = banana;


               label3.Width = 200;


               label3.Height = 40;


               label3.Click += Label1_Click;


               label3.Font = new Font("楷体", 13, FontStyle.Regular);


               label3.TextAlign = ContentAlignment.MiddleCenter;


               table.Controls.Add(label3, 2, i);


               Label label4 = new Label();


               label4.Text = casaba;


               label4.Width = 200;


               label4.Height = 40;


               label4.Click += Label1_Click;


               label4.Font = new Font("楷体", 13, FontStyle.Regular);


               label4.TextAlign = ContentAlignment.MiddleCenter;


               table.Controls.Add(label4, 3, i);


               Label label5 = new Label();


               label5.Text = sugarcane;


               label5.Width = 200;


               label5.Height = 40;


               label5.Click += Label1_Click;


               label5.Font = new Font("楷体", 13, FontStyle.Regular);


               label5.TextAlign = ContentAlignment.MiddleCenter;


               table.Controls.Add(label5, 4, i);


           }


           catch (Exception ex)


           {


               MessageBox.Show(ex.Message.PadRight(30, ' '), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);


           }


       }



       private void Label1_Click(object sender, EventArgs e)


       {


           Label label = (Label)sender;


           MessageBox.Show(label.Text);


       }

tt.png

实例2、实现表格的跨列

在TableLayoutPanel中加入panel对象,设置panel对象的ColumnSpan属性为2,将Marign设置为0,Dock设置为Fill。

 tt.png


tt.png


tt.png

目录
相关文章
|
4月前
|
开发框架 前端开发 JavaScript
在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件
在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件
|
XML JavaScript Java
Android实现加载富文本以及SpannableString、SpannableStringBuilder实现部分文字可以点击,更换颜色
Android实现加载富文本以及SpannableString、SpannableStringBuilder实现部分文字可以点击,更换颜色
Winform动态设置TableLayoutPanel等宽高
转自博客: http://blog.csdn.net/langyuewu/article/details/38865423最近有个项目要修改,看完后果断决定重构,里面很多不规范的地方,布局大部分都是计算出来的,但是基本没有采用布局控件,不能自适应,其中有类似九宫格的布局方式,放在WPF,那真是一个控件秒秒钟能搞定的事情,好多年没做winform了,拿回来还是很容易上手。
1602 0
splitcontainer控件固定Panel的大小
splitcontainer控件固定Panel的大小
247 0
|
JavaScript 前端开发 数据格式
ExtJS 6 gridPanel绘制表格并填充数据的例子
Ext.grid.Panel 是表格,可以显示数据,我们来看看它的基本用法:View + Store + Model使用上述三个“部分”就可以完整的,最简易的在Ext的世界中绘制一个用于显示数据库中数据的UI View部分的代码 Ext.
3065 0
|
JavaScript 前端开发
|
容器
C#panel控件使用的技巧
图1     很多时候,我们会做图1的设计。在窗体设计时,panel上面放上两个容器。一般情况下这两个容器是不显示的,只在通过下面的[显示1号框]、[显示2号框]来显示。
1222 0