我想在主Windows窗体的顶部创建一个可调整大小的菜单。我添加了一个TableLayoutPanel并将其Dock属性设置为 Top 。此TableLayoutPanel上有相等的4列。我在每个列上添加了一个按钮,并将其Dock属性设置为 Fill 。当我最大化表单时,我的菜单变宽,适合形成宽度。这就是我现在想要的。但是,当我减少(未最小化)窗体的宽度时,按钮开始从左侧消失。我期望在表单宽度减小时自动调整大小。我怎么能阻止这个?有什么建议吗?
答案 0 :(得分:0)
我能够在针对.Net 4.0框架的VS2013中快速重现此行为。似乎最后一列是受自动调整过程影响的列。我将列设置为绝对列(20像素),然后使用动态计算来确定列应使用的屏幕百分比。每次添加/删除列时,都需要调用SetColumnSize()
方法。
public Form1()
{
InitializeComponent();
SetColumnSize();
}
private void SetColumnSize()
{
float colPercent = 100 / this.tableLayoutPanel1.ColumnCount;
this.tableLayoutPanel1.ColumnStyles.Clear();
for (int i = 0; i < this.tableLayoutPanel1.ColumnCount; i++)
{
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, colPercent));
}
}