如何在WinForm中增长TextBox?

时间:2015-08-19 13:09:19

标签: winforms

在我正在使用的WinForm中,我有两个TextBox小部件和文本框之间的一个按钮。当表单开始,并且winform处于其最小大小时,TextBoxes看起来像预期的那样。它们靠近中心按钮的物品之间没有间隙。这如上图所示。

但是,当用户最大化winform时,TextBox会移动到正确的位置但不会展开以保持靠近中心的按钮。文本框A锚定在左侧,文本框B锚定在右侧。因此对齐是正确的。这如下图所示。

TextBox example

现在,问题是如何使文本框A向右增长,使其接近中间的按钮,文本框B向左增长,以便它也接近按钮?

谢谢!埃里克

3 个答案:

答案 0 :(得分:2)

使用TablelayoutPanel控件。 From MSDN

创建一行三列的TableLayoutPanel 第一栏:SizeType:%,50%
第二栏:SizeType:绝对,75(按钮宽度)
第三栏:SizeType:%,50%

然后将文本框和按钮放在列中 设置文本框和按钮属性.Dock = Fill
文本框的大小将根据TableLayoutPanel

中列的大小自动更改

Dock的{​​{1}}属性设置为TableLayouPanelFillBottom。然后TableLayoutPanel将在更改表单宽度时更改宽度。

Small form

Large form

答案 1 :(得分:1)

使用简单的锚点,你无法实现这一目标。 但您可以使用TableLayoutPanel

  • 在表单上放置TableLayoutPanel并将Dock设置为Fill(或Top / Bottom
  • 制作3列。
    • 第1栏:百分比,50%
    • 第2列:绝对,设置所需的按钮大小(例如100px)
    • 第3栏:百分比,50%
  • 将TextBoxA拖放到Column1中,并设置Anchor Left and Right
  • 将Button放入Column2,然后清除Anchors
  • 将TextBoxB拖放到Column3中,并设置Anchor Left and Right

如果没有TableLayoutPanel,您可以进行以下操作:

  • TextBoxA:左右锚定
  • 按钮和TextBoxB:锚定权限 所以只有TextBoxA会增长。

答案 2 :(得分:0)

您可以使用Button属性和文本框 -

按钮A - 锚点 - 左和右 按钮B - 锚点 - 左和右

您还可以根据需要设置文本框锚属性,并控制所有这三个控件的位置。