【问题标题】:How can I increase height of a textbox without Multiline = "true" or incrementing font size?如何在没有 Multiline = "true" 或增加字体大小的情况下增加文本框的高度?
【发布时间】:2012-04-22 21:25:56
【问题描述】:

我需要调整文本框的高度,使其适合触摸屏。

我了解人们推荐Multiline = "true",但如果我这样做,框内的文本将与顶部对齐,这在我的应用程序中是不合适的。

我尝试调整字体大小,但大小应该大得离谱,以适应我需要的高度。

有没有其他方法可以增加文本框的高度?

【问题讨论】:

  • 我认为您可以使用填充,它会增加文本框“正常”地证明它。
  • @david 没有正确考虑:我们没有 Padding 用于 WinForms 中的 TextBox。

标签: c# winforms textbox


【解决方案1】:

试试这个:

textBox1.AutoSize = false;

它不会出现在智能感知中,但它会起作用。

要让它与设计器一起工作,您必须制作自己的文本框:

public class TextBoxEx : TextBox {
  public TextBoxEx() {
    this.AutoSize = false;
  }
}

【讨论】:

  • 它正在工作,但文本与其顶部对齐,我不允许更改其垂直对齐方式。知道如何垂直对齐文本吗?
  • @david 唯一的另一种方法是获取一个无边框的 TextBox 并将其放置在具有相同背景色的 UserControl 中,然后在调整大小时在 UserControl 的范围内处理 TextBox 的放置。不理想,您失去了带有视觉样式的 TextBox 边框。 WinForms 不擅长这一点,而 WPF 处理得更好。
  • @LarsTech 使文本框看起来更大似乎不符合 OP 的要求。他实际上希望文本框更大,这样更容易触摸。
  • @McKay 我不是在解决这个问题吗? OP 不希望 MultiLine=True 也不增加字体大小。 WinForms 中还有哪些其他选择?
  • 是的,您的建议似乎是唯一的解决方案。我真的没想到触摸屏的 UI 与传统的 Winform UI 如此不同。不管怎样,谢谢你的回答。
【解决方案2】:

技巧步骤:

  1. 设置多行=true
  2. 无需更改字体大小。
  3. 更改最大长度。以免进入下一行。

【讨论】:

    【解决方案3】:

    对于我想做的事情,使用标签而不是 BorderStyle=Fixed3DAutoSize=False 成功了。

    【讨论】:

      猜你喜欢
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2018-06-07
      • 2021-02-23
      • 1970-01-01
      • 2017-08-29
      相关资源
      最近更新 更多