我试图通过给它们一个宽度和高度来均匀地分配动态创建的控件,该宽度和高度是容器控件的宽度和高度的一小部分。
然而,尽管我计算尺寸的函数是正确的,但由于某种原因,对 Width 属性的分配被顽固地拒绝了。WidthToUse() 函数返回 19,但是当尝试将该值分配给动态创建的 TextBox 时,它仍保持在...630!为什么要从 630 开始,为什么它拒绝分配?
即使是高度,虽然“工作”并不完全正确 - 面板上的控件太多或没有足够的空间来容纳使用此数学的所有控件。
这是我的代码:
int WidthToUse = getTextBoxWidthToUse(tableLayoutPanelGreatGooglyMoogly.Width);
int HeightToUse = getControlHeightToUse(tableLayoutPanelGreatGooglyMoogly.Height);
TextBox txtbx = new TextBox();
txtbx.Parent = tableLayoutPanelGreatGooglyMoogly;
txtbx.Margin = new Padding();
txtbx.Dock = DockStyle.Fill;
txtbx.AutoSize = false;
txtbx.Width = WidthToUse; // WidthToUse is 19, but txtbx.Width is 630 both before AND after this assignment!
txtbx.Height = HeightToUse; // HeightToUse is 27
private static int getControlHeightToUse(int theDynPanelHeight) {
return (theDynPanelHeight / NUMBER_OF_ROWS);
}
private static int getTextBoxWidthToUse(int theDynPanelWidth) {
return (theDynPanelWidth / 32);
}
private static int getLabelWidthToUse(int theDynPanelWidth) {
return ((theDynPanelWidth / 64) * 3);
}