我正在使用winforms应用程序,我想设置文本框的宽度,它将显示字符直到最大长度,简而言之,如 width = maxlength 。有任何预定义属性吗?或者我们必须手动计算?
//我正在寻找这种类型的逻辑
private void Form1_Load(object sender, EventArgs e)
{
//sample project
textBox2.Width = textBox2.MaxLength;
textBox3.Width = textBox3.MaxLength;
textBox4.Width = textBox4.MaxLength;
}
答案 0 :(得分:3)
您有一个单位不匹配:宽度以像素为单位,MaxLength以字符为单位。
所以你需要使用例如测量字体Graphics.MeasureString ..最适合Consolas等固定字体。
您可以测量字体,例如像这样,使用' x'作为中等宽度的字母:
using (Graphics G = textBox2.CreateGraphics())
textBox2.Width = (int) (textBox2.MaxLength *
G.MeasureString("x", textBox2.Font).Width);
您可以使用其他字体测量方法,例如TextRenderer.MeasureText
;这两种方法都有options来微调测量。上面的默认值将包括一些余地。
如果您使用固定字体,宽度就可以了,如果您不想确定自己是否安全,请使用" W&# 34;或" M"测量)与否。 " X"可能是妥协。或者你可以在例如动态调整。 TextChanged事件..
答案 1 :(得分:0)
使用Anchor属性定义控件在调整其父控件的大小时自动调整大小的方式 将控件锚定到其父控件可确保在调整父控件时,锚定边缘相对于父控件的边缘保持在相同位置。
答案 2 :(得分:0)
试试这个:
textbox1.MaxLength = 0//The default value is 0, which indicates no limit;
请参阅此msdn链接以获取更多信息: