【问题标题】:how to make a textBox change its height when the number of lines change当行数改变时如何使文本框改变它的高度
【发布时间】:2014-12-07 06:05:03
【问题描述】:

我用两个文本框制作了用户控件。其中之一是多行,其他文本框是单行,位于多行文本框的底部。我想根据内容行数更改多行文本框的高度,并将单行文本框直观地粘贴到这个多行文本框(两个文本框之间没有间距)。

【问题讨论】:

  • 您打算以某种规模阻止这种增长还是无限增长?
  • 那么,您的问题出在哪里?使用 TextChanged 事件和 Lines.Count 属性..
  • 它应该是无限的。

标签: c# winforms textbox


【解决方案1】:

这是你要找的吗?

SizeF size;
private void textBox1_TextChanged(object sender, EventArgs e)
{
    using (Graphics G = textBox1.CreateGraphics())
        size = G.MeasureString("Xy_", textBox1.Font, 999);

    textBox1.Height = (int)(textBox1.Lines.Count() * size.Height + 5);
    textBox2.Top = textBox1.Bottom - 1;
}

using 行确实可以并且应该移至 Form 构造函数。根据您的字体和边框,您希望调整两个更正编号。

【讨论】:

  • 我还有一个问题,如何使 usercontrol1 表单与这两个文本框一起缩放?即使有 1 行文本 usercontrol1 高度也会在下方留出一个空格
  • 这将取决于您想要在上方和下方有多少空间。下面没有空格你可以写:uc1.Height = textBox1.Top + textBoxt1.Height + textBox.Height;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多