我需要调整文本框的高度,使其适合触摸屏。
我理解人们推荐
Multiline = "true"
,但如果我这样做,框内的文本会与顶部对齐,这在我的应用程序中是不正确的。
我尝试调整字体大小,但大小应该大得离谱才能满足我的需要。
还有其他方法可以增加文本框的高度吗?
试试这个:
textBox1.AutoSize = false;
它不会显示在智能感知中,但它会起作用。
要使其与设计器配合使用,您必须制作自己的文本框:
public class TextBoxEx : TextBox {
public TextBoxEx() {
this.AutoSize = false;
}
}
技巧步骤:
对于我想做的事情,使用标签代替
BorderStyle=Fixed3D
和 AutoSize=False
做到了这一点。
我发现下面的解决方案是一个足够好的妥协方案。它关闭控件的 AutoSize 属性并增加其内容的字体大小。到目前为止,它似乎适用于各种 DPI 环境。
public class SingleLineTextBox : TextBox
{
protected override void OnCreateControl()
{
base.OnCreateControl();
if (Font is Font font)
{
// Suppress the single-line textbox's fixed height
AutoSize = false;
// Increase size of textbox contents to compensate for vertical displacement
Font = new Font(font.FontFamily, font.Size + 0.5F);
}
}
}