我需要调整文本框的高度,以适应触摸屏。
我知道人们推荐使用 Multiline = "true"
,但如果这样做,框内的文本将与顶部对齐,这在我的应用程序中不合适。
我尝试调整字体大小,但为了满足我的需求,字体大小应该非常大。
是否有其他方法可以增加文本框的高度?
我需要调整文本框的高度,以适应触摸屏。
我知道人们推荐使用 Multiline = "true"
,但如果这样做,框内的文本将与顶部对齐,这在我的应用程序中不合适。
我尝试调整字体大小,但为了满足我的需求,字体大小应该非常大。
是否有其他方法可以增加文本框的高度?
试一下这个:
textBox1.AutoSize = false;
虽然它不会出现在Intellisense中,但它能够正常工作。
如果想让它在设计器中有效,你需要自己创建一个TextBox:
public class TextBoxEx : TextBox {
public TextBoxEx() {
this.AutoSize = false;
}
}
技巧步骤:
对于我想要做的事情,使用标签而不是BorderStyle=Fixed3D
和AutoSize=False
就可以解决问题。
public class SingleLineTextBox : TextBox
{
protected override void OnCreateControl()
{
base.OnCreateControl();
if (Font is Font font)
using (font)
{
// Suppress the single-line textbox's fixed height
AutoSize = false;
// Increase size of textbox contents to compensate
// for vertical shift
Font = new Font(font.FontFamily, font.Size + 0.75F);
}
}
}