C# 为什么在编译时更改Textbox.MaximumSize值?

C# 为什么在编译时更改Textbox.MaximumSize值?,c#,winforms,textbox,height,C#,Winforms,Textbox,Height,我有一个用户控件,里面有一个文本框。 我需要最大尺寸为267,0的文本框。 出于某种原因,如果我编译项目,该值设置为267,4。这打破了我用来调整其高度大小以响应文本版本的代码。 有人曾经面对过这个问题吗?原因可能是什么?您必须设置文本框。自动将设置为'false'(您不会在属性窗口中看到它,Intellience不会显示它,但它就在那里)。否则,文本框将一直忽略MaximumSize的高度部分。调整大小可能有几个原因。我能想到两个: 尝试禁用该属性: textBox1.AutoSize = f

我有一个用户控件,里面有一个文本框。 我需要最大尺寸为267,0的文本框。 出于某种原因,如果我编译项目,该值设置为267,4。这打破了我用来调整其高度大小以响应文本版本的代码。
有人曾经面对过这个问题吗?原因可能是什么?

您必须设置文本框。自动将设置为'false'(您不会在属性窗口中看到它,Intellience不会显示它,但它就在那里)。否则,文本框将一直忽略MaximumSize的高度部分。

调整大小可能有几个原因。我能想到两个:

尝试禁用该属性:

textBox1.AutoSize = false;
textBox1.Height = 0;

检查锚固件。如果将
TextBox
锚定到其容器(即用户控件)的顶部和底部,并且该容器已调整大小,则
TextBox
也将调整大小。

If
TextBox.MaximumSize
在设计时为267,0,似乎
TextBox.Border
对运行时值的影响如下:

如果None,则
文本框的最大大小为267,0。
如果FixedSingle,则
文本框的最大大小为267,2。

如果Fixed3D,则
TextBox.MaximumSize
为267,4。

4英寸的高度可能是
TextBox
的非客户区(用阴影绘制边框)。尽量避免以这种方式布局或调整大小。在winforms中,您可以使用
TableLayoutPanel
FlowLayoutPanel
。尝试禁用
TextBox
上的
AutoSize
属性:
textBox1.AutoSize=false