Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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# 如何在窗体大小更改时自动调整控件大小_C#_Winforms - Fatal编程技术网

C# 如何在窗体大小更改时自动调整控件大小

C# 如何在窗体大小更改时自动调整控件大小,c#,winforms,C#,Winforms,我在我的表格上画了一个矩形,在上面我有一个我拖动的标签。现在,我想重新调整包含标签的矩形的大小,以便在表单大小更改(最大化和全部)时,它会自动更改。 我试着用 this.label1.Size = new Size(); 但这会导致我的标签或矩形从表单中消失。我现在看不到我的状态。 锚和码头属性不符合我的目的。我必须硬编码。 需要有关如何解决此调整大小问题的帮助。使用.Anchor属性。请查看和属性。他们应该能够为您提供所需的功能 您也可以在resize事件中使用该方法。您可以使用控件的Doc

我在我的表格上画了一个矩形,在上面我有一个我拖动的标签。现在,我想重新调整包含标签的矩形的大小,以便在表单大小更改(最大化和全部)时,它会自动更改。 我试着用

this.label1.Size = new Size();
但这会导致我的标签或矩形从表单中消失。我现在看不到我的状态。 锚和码头属性不符合我的目的。我必须硬编码。
需要有关如何解决此调整大小问题的帮助。

使用.Anchor属性。

请查看和属性。他们应该能够为您提供所需的功能


您也可以在resize事件中使用该方法。

您可以使用控件的
Dock
属性,使其与表单的左、右、上或下边缘对齐,或填充整个表单


或者使用
锚定
属性,该属性允许您锚定坐标-例如,当您将锚定设置为左、右、上、下时,它将根据表单调整大小。

如果停靠和锚定不好,则只需设置宽度和高度属性。通过创建默认大小对象并将其指定给控件,基本上就是将宽度和高度指定为0。

您应该处理
SizeChanged
事件:

this.SizeChanged += new EventHandler(Form1_SizeChanged);
然后在envent handler方法中,必须排列控件的
大小
位置

void Form1_SizeChanged(object sender, EventArgs e)
{
   myControl.Size = new Size(w,h);  // size of the control
   myControl.Location = new Point(x,y);  //coordinates from the upperleft corner of your control's container (the form in your case)
}
注意。
AFAIK标签的大小不能根据您的需要调整(位置是可以的),因为它的大小是固定的。使用文本框并将
只读
多行
属性设置为true

试试。但对我来说,它有一点奇怪的行为…

我不能使用它。我必须根据我的需要硬编码我的代码。锚和船坞不起作用锚和船坞属性有什么问题?它们是在Windows窗体中设置布局的标准方法。我忘了在这里提到我在这里画了一个矩形,上面有标签。这就是为什么我需要调整包含标签的矩形的大小。所以锚和码头不起作用。很抱歉给您带来不便您是在手工绘制矩形吗?您可以使用面板控件设置其边框,并将标签放在其中。您可以使用标准布局属性锚定/停靠,使其自动随窗体调整大小。是的,我正在手工绘制矩形。因此,您可以用面板替换手工绘制的矩形吗?如果它是一个简单的形状,那么你可以使用面板,并有较少的代码来管理。标签大小可以更改..通过更改字体大小!label1.Font=新字体(“Tahoma”,24)@桑妮:那不一样。在这种情况下,大小将根据字体大小自动计算,而不是由用户设置。。。