C# 调整文本框大小以适应内容

标签 c# winforms textbox resize

我正在编写一个程序,用户应该能够在 TextBox 中写入文本。我希望 TextBox 自行调整大小,以适应内容。 我尝试了以下方法:

private void textBoxTitle_TextChanged(object sender, TextChangedEventArgs e)
{
    System.Drawing.Font myFont = new System.Drawing.Font("Verdana", 8);
    System.Drawing.SizeF mySize = e.Graphics.MeasureString("This is a test", myFont);
    this.textBoxTitle.Width = (int)Math.Round(mySize.Width, 0);
}

我收到一条错误消息,提示 Graphics 不适用于 TextChangedEventArgs。还有其他方法可以调整 TextBox 的大小吗?

最佳答案

您应该尝试使用如下代码。它对我很有效。

private void textBox1_TextChanged(object sender, EventArgs e)
{
  Size size = TextRenderer.MeasureText(textBox1.Text, textBox1.Font);
  textBox1.Width = size.Width;
  textBox1.Height = size.Height;
}

有关更多信息,请参阅 TextRenderer.MeasureText()

关于C# 调整文本框大小以适应内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048455/

相关文章:

c# - Wpf DataGrid(德语)日期排序

c# - 如何让 JavaScript 在 WebBrowser 控件中运行?

c# - 如何防止上下键在 c# windows 窗体中将文本框中的插入符号/光标左右移动。

c# - 从自动完成建议列表中选择一个项目会引发带有 ENTER 键的 KeyDown 事件

c# - 如何阻止 WPF TextBox 增长

c# - HTTP 错误 404.13 - 未找到

c# - C#中的跨线程事件处理

c# - 在 .Net c# 中使用 OpenXML 在页脚中插入图像

c# - 如何在未选中 ShowCheckBox 的情况下加载 DateTimePicker

c# - 如何为自定义控件实现 AutoSize 属性?