C# 对齐文本框';使文本居中

C# 对齐文本框';使文本居中,c#,winforms,C#,Winforms,当使用“自动大小”属性为false时,是否可以将文本框设置为居中对齐。我尝试使用“文本对齐”属性,但无效。这是我的代码 textBox1.AutoSize = false; textBox1.Size = new Size(100,35); textBox1.TextAlign = HorizontalAlignment.Center; 下面是一个屏幕示例: 我希望结果如图所示 文本框是工具箱中的一个grand daddy控件。可以追溯到1987年和Windows 2.0版。当它还是一

当使用“自动大小”属性为false时,是否可以将
文本框设置为居中对齐。我尝试使用“文本对齐”属性,但无效。这是我的代码

 textBox1.AutoSize = false;
 textBox1.Size = new Size(100,35);
 textBox1.TextAlign = HorizontalAlignment.Center;
下面是一个屏幕示例:

我希望结果如图所示


文本框是工具箱中的一个grand daddy控件。可以追溯到1987年和Windows 2.0版。当它还是一个16位实模式操作系统,必须在640千字节的内存中运行时。它也因违反规则而臭名昭著,在不使用WM_油漆的情况下自行喷漆。微软为了从386SUX处理器获得可接受的性能而不得不做的事情。缺乏记忆是减少其特征的主要原因

他们并没有做太多的工作来改善控制,尽管看起来确实比28年前好了很多。改变它的行为是非常危险的,TextBox是一个主要的应用程序兼容性噩梦,28年来程序员试图破解它来做更多的事情

但是没有办法让它看起来像你想要的那样,它总是使文本顶部对齐。您一定已经注意到它为阻止您编写代码而进行的斗争。这也是非常非常错误的代码,当它在高DPI机器上运行时,硬编码大小会产生非常不希望发生的事故,显示文本时,下降部分被剪掉。对于单行文本框,应始终将AutoSize设置为True,以防止此类事故


您可以很容易地模拟它,只需将它嵌入到一个面板中,该面板的高度与您想要的一样高,并将其BorderStyle属性设置为“无”。使用其调整大小事件使其在面板中居中。简单明了。

因为问题是关于垂直排列的,对于单模也有一种方法,但它将与面板一起工作

将文本框放置在带有填充的面板中:


我需要文本在中心(垂直)对齐,是吗?没有多行的垂直对齐???这是什么意思??但不,您不能使用或不使用多行垂直对齐。如果没有它,甚至无法设置高度。是的,可以为winforms设置高度吗?要为多行或单行设置相同的高度吗?