Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的TextBox.Width值不接受值I';我在试着分配它?_C#_Winforms_Dynamic_Tablelayoutpanel - Fatal编程技术网

C# 为什么我的TextBox.Width值不接受值I';我在试着分配它?

C# 为什么我的TextBox.Width值不接受值I';我在试着分配它?,c#,winforms,dynamic,tablelayoutpanel,C#,Winforms,Dynamic,Tablelayoutpanel,我试图通过为动态创建的控件指定一个宽度和高度来均匀分配空间,该宽度和高度是容器控件的宽度和高度的一小部分 然而,尽管我的计算维度的函数是正确的,但由于某些原因,对Width属性的赋值被顽固地拒绝了。WidthToUse()函数返回19,但当尝试将该vaue分配给动态创建的文本框时,它仍保持在…630!为什么从630开始,为什么拒绝分配 即使是高度,虽然“工作”并不完全正确-面板上的控件太多或空间不足,无法容纳使用此数学的所有控件 这是我的密码: int WidthToUse = getTextB

我试图通过为动态创建的控件指定一个宽度和高度来均匀分配空间,该宽度和高度是容器控件的宽度和高度的一小部分

然而,尽管我的计算维度的函数是正确的,但由于某些原因,对Width属性的赋值被顽固地拒绝了。WidthToUse()函数返回19,但当尝试将该vaue分配给动态创建的文本框时,它仍保持在…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);
}

因为
Dock
属性设置为
Fill
将是我的猜测。

因为
Dock
属性设置为
Fill
将是我的猜测。

DockStyle.Fill是描述控件相对于其容器大小的大小的属性。控件将调整大小以适应具有此属性集的其父容器中的所有空白

DockStyle.Fill是一个属性,描述控件相对于其容器大小的大小。控件将调整大小以适应具有此属性集的其父容器中的所有空白

如果您使用的是DockStyle.Fill,为什么要设置显式大小?如果您使用的是DockStyle.Fill,为什么要设置显式大小?好的,这是真的;现在的问题是:我如何让文本框占据“牢房”中的所有空间——它们附着在白杨上,我明白了;我感觉自己像一个木偶,拉着一些线向上,一些向下,直到我找到了正确的组合,使各个部分一起跳舞。奇怪/令人沮丧的是,将控件的高度设置为容器的高度除以行数不起作用,将宽度设置为容器的宽度除以列数也不起作用。当有12行时,我必须将高度除数设置为14。我猜填充或其他一些“绒毛”导致了这种令人不快的偏移;现在的问题是:我如何让文本框占据“牢房”中的所有空间——它们附着在白杨上,我明白了;我感觉自己像一个木偶,拉着一些线向上,一些向下,直到我找到了正确的组合,使各个部分一起跳舞。奇怪/令人沮丧的是,将控件的高度设置为容器的高度除以行数不起作用,将宽度设置为容器的宽度除以列数也不起作用。当有12行时,我必须将高度除数设置为14。我猜填充或其他一些“绒毛”导致了这种令人不快的偏移。