<TextBox Height="?" Width="?" AcceptReturn="true" />
Run Code Online (Sandbox Code Playgroud)
高度=随机; 宽度=随机; 例如,高度为60,宽度为100.如何控制文本的输入长度小于TextBox的大小
使用 MaxLength
编辑:
等等,什么?您想要将字符数限制为TextBox的宽度吗?为什么?
EDIT2:
您可以使用Graphics.MeasureString测量字符串的长度.这是一个执行您想要的扩展方法:
public static class TextBoxExtension
{
public static int VisibleCharCount(this textBox textBox)
{
int count = 0;
do {
count++;
var testString = new string('X', count);
var stringWidth = System.Drawing.Graphics.MeasureString(testString, textBox.Font);
} while (stringWidth < textBox.Width);
if (stringWidth == textBox.Width)
return count;
else
return count-1;
}
}
Run Code Online (Sandbox Code Playgroud)
像这样使用它:
myTextBox.MaxLength = myTextBox.VisibleCharCount();
Run Code Online (Sandbox Code Playgroud)
EDIT3:
如果您的TexBox是MultiLine并且您还想考虑高度,则可以使用带有Size的MeasureString的重载.我把它留给你来相应地修改我的例子.