[英]C# WinForm Auto resize textbox
我正在使用WinForms,我正在尝试将文本从一个textbox1传递到另一个textbox2。 关键是,textbox2必须根据textbox1的内容自动调整大小。 我设法完成了一个例外。 当你在textbox1中创建新行时,就可以了。 但是,当您使用空格但不创建新行时,它不会正确调整我的textbox2的大小。 它调整大小但不完全是出于某种原因。
这是我试图做的。
private void PassTextFunction()
{
const int X_Main = 95;
const int Y_Main = 60;
Size size = TextRenderer.MeasureText(TextBox1.Text, TextBox1.Font);
TextBox2.Text.ClientSize = new Size(size.Width + X_Main, size.Height + Y_Main);
int nInterval = 10;
string res = String.Concat(TextBox2.Text.Select((c, i) => i > 0 && (i % nInterval) == 0 ? c.ToString() + Environment.NewLine : c.ToString()));
TextBox2.Text = TextBox1.Text.ToString();
}
因此,当我制作线条时,所有内容都会非常精细。 以下是示例: https : //imgur.com/zxd5aCd
但是当我写下没有下一行,只是简单地键入时,其余的文本都隐藏在下面,textbox2没有完全由于某种原因调整大小。 以下是示例: https : //imgur.com/ftbiP55
有人可以帮我解决固定代码吗?
看一下重载string
, Font
, Size
和TextFormatFlags
。
对于Size
类型的参数,使用文本框的ClientSize
(或带有文本框宽度的新Size
)(并可能添加您的X_Main
和Y_Main
- 我不确定它们的用途)并且至少包括TextFormatFlags.WordBreak
用于TextFormatFlags
(并查看其他的,如果它们也可以用于你)。
...
Size size = TextRenderer.MeasureText(TextBox1.Text, TextBox2.Font, TextBox2.ClientSize, TextFormatFlags.WordBreak);
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.