在C#表单中,我有一个固定在所有侧面的面板,而里面是一个固定在顶部/左侧/右侧的文本框。
当文本加载到文本框中时,我希望它自动垂直扩展,这样我就不需要滚动文本框(最多滚动面板,如果有更多文本不适合该面板)。有没有办法用文本框做到这一点?(我不受约束地使用此控件,因此,如果有另一个适合该说明的控件,请随意提及)
我假设这是一个多行文本框,并且您将允许它垂直增长。该代码运行良好:
private void textBox1_TextChanged(object sender, EventArgs e) { Size sz = new Size(textBox1.ClientSize.Width, int.MaxValue); TextFormatFlags flags = TextFormatFlags.WordBreak; int padding = 3; int borders = textBox1.Height - textBox1.ClientSize.Height; sz = TextRenderer.MeasureText(textBox1.Text, textBox1.Font, sz, flags); int h = sz.Height + borders + padding; if (textBox1.Top + h > this.ClientSize.Height - 10) { h = this.ClientSize.Height - 10 - textBox1.Top; } textBox1.Height = h; }
当文本框为空时,您应该做一些合理的事情,例如设置MinimumSize属性。