版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的
8.4.5 TableLayoutPanel(表格布局面板)控件
TableLayoutPanel控件有点类似Html中的Table,它只是提供行列位置,里面放置控件,需要注意的是每个单元格里面只能放一个控件。
TableLayoutPanel常用属性:
- GrowStyle:指示当现有的所有单元格都被占用时,TableLayoutPanel控件是否应该扩展以容纳新单元格。包含以下值:
- AddRows:在已满之后将增加一行。此为默认值。
- AddColumns:在已满之后将增加一列。
- FixedSize:在已满之后不允许增加行或列。
- ColumnCount:列数。
- RowCount:行数。
- CellBorderStyle:单元格边框的样式,包含以下样式:
- None:无边框。
- Inset:单线凹陷边框。
- InsetDouble:双线凹陷边框。
- Outset:单线凸起边框。
- OutsetDouble:双线凸起边框。
- OutsetPartial:包含凸起部分的单线边框。
- Single:单行边框。
窗体编辑模式下,可以通过ColumnCount属性和RowCount属性设置表格的列数和行数,或者通过单击Columns属性或Rows属性后面的按钮,打开【列和行样式】窗口,在这个窗口里面可以增加、删除、插入行或者列,还可以设置某行或某列的绝对或者百分比高度(宽度),这个设置同时将会影响到在窗口编辑中调整TableLayoutPanel控件大小时行列的高度和宽度。
还可以通过以下方法打开【列和行样式】窗口:在窗口编辑器中选中TableLayoutPanel,点击右上角小三角形,这时会弹出菜单,单击菜单项“编辑行和列……”即可。
TableLayoutPanel常用方法:
- GetControlFromPosition:返回占据指定位置的子控件。
- GetColumn:返回指定子控件的列位置。
- GetRow:返回指定子控件的行位置。
- SetColumn:设置指定子控件的列位置。
- SetRow:设置指定子控件的行位置。
- SetCellPosition:设置指定子控件的行列位置。
【例 8.55】【项目:code8-055】向TableLayoutPanel控件增加一行并改变子控件所在单元格。
在窗体上放置一个TableLayoutPanel控件,设置为2行2列,高度大小类型为百分比,大小为50%(即平分高度),CellBorderStyle属性为Single;放置三个按钮,其中两个分别在单元格(0,0)和(1,0)处。
private void button1_Click(object sender, EventArgs e)
{
//将表格布局面板控件高度设置为现在的1.5倍,使添加一行后每行的高度不变
tableLayoutPanel1.Height =(int)( tableLayoutPanel1.Height * 1.5);
//增加一行
tableLayoutPanel1.RowCount = tableLayoutPanel1.RowCount + 1;
RowStyle newRowStyle =new RowStyle();
//行大小类型百分比
newRowStyle.SizeType = SizeType.Percent;
//高度为50%
newRowStyle.Height = 50.0f;
//将新增的行样式添加进行样式集合
tableLayoutPanel1.RowStyles.Add(newRowStyle);
//定义一个控件
Control subControl;
//使用GetControlFromPosition方法获得在单元格(0,0)处包含的子控件
subControl = tableLayoutPanel1.GetControlFromPosition(0, 0);
//将获得的子控件设置到单元格(2,2)位置
tableLayoutPanel1.SetCellPosition(subControl, new TableLayoutPanelCellPosition(2, 2));
}
运行结果如下图所示:
图8-91 改变前表格行列状态和子控件位置
图8-92 改变后表格行列状态和子控件位置
8.4.6 FlowLayoutPanel(流动布局面板)控件
FlowLayoutPanel 控件操作方法是选中该控件后,然后依次双击需要在控件中设置的子控件,控件都会添加进FlowLayoutPanel中,并按照先满足FlowLayoutPanel宽度排列的方式一直排下去,宽度不够时将从新行排列。当在窗体编辑器中调整FlowLayoutPanel大小时,里面控件的位置随之变化,总体保持整齐排列。
FlowLayoutPanel常用属性:
- FlowDirection:子控件的排列方向,包括以下值:
-
- LeftToRight:子控件从面板的左侧开始排列到右侧,右侧排满后在下面继续排列。
- TopDown:子控件从面板的顶部开始排列到底部,底部排满后在右侧继续排列。
- RightToLeft:子控件从面板的右侧开始排列到左侧,左侧排满后在下面继续排列。
- BottomUp:子控件从面板的底部开始排列到顶部,顶部排满后在右侧继续排列。
-
【例 8.56】【项目:code8-056】在窗体编辑模式使用FlowLayoutPanel 控件。
选中FlowLayoutPanel控件,双击工具箱内的Button控件,将6个Button添加到FlowLayoutPanel。设置FlowLayoutPanel 的FlowDirection属性为RightToLeft时的排列方向,由于左侧空白处不足以增加按钮控件,所以左侧空白宽度较大:
图8-93 FlowLayoutPanel中子控件排列方向为RightToLeft
注意:如果要调整FlowLayoutPanel内子控件的间隔,请设置子控件的Margin属性。
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录