将文本框的文本对齐到中心

时间:2015-05-18 09:29:26

标签: c# winforms

是否可以将textbox文本设置为在中心对齐,同时将auto size属性设置为false。我尝试使用Text align属性,但它确实无效。这是我的代码。

 textBox1.AutoSize = false;
 textBox1.Size = new Size(100,35);
 textBox1.TextAlign = HorizontalAlignment.Center;

以下是一个屏幕示例:

enter image description here

我希望结果如图所示。

enter image description here

2 个答案:

答案 0 :(得分:6)

TextBox是工具箱中的爷爷控制之一。一直追溯到1987年和Windows 2.0版。当它仍然是一个16位实模式操作系统时,必须运行640千字节的内存。它也因违反规则而臭名昭着,在不使用WM_PAINT的情况下进行绘画。微软为了从386SUX处理器获得可接受的性能而必须做的事情。缺乏记忆是减少其功能的主要原因。

他们没有做太多改进控制,虽然它看起来比28年前更好。改变它的行为是非常危险的,TextBox是一个主要的app-compat噩梦,有28年的程序员试图破解它做更多。

但是没有办法让它看起来像你想要的那样,它总是呈现文本顶部对齐。你必须注意到它所提出的阻止你编写代码的斗争。这也是非常非常错误的代码,当在高DPI机器上运行时,硬编码大小会产生非常不希望的事故,显示文本与下降器剪切掉。对于单行TextBox,AutoSize应始终设置为True,以防止此类事故发生。

您可以非常轻松地模拟它,只需将其嵌入到您想要的高度的面板中,并将其BorderStyle属性设置为None。使用其Resize事件将其置于面板中心。容易腻。

答案 1 :(得分:0)

由于问题是关于垂直排列以及单模式的问题,有一种方法,但它会与面板一起使用。

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

enter image description here