c#如何使Textbox只可以输入10个中文或者只可以输入20个英文、数字(画面有很多textbox控件的)
3个回答
展开全部
有个MaxLength属性的话恐怕不能达到要求,只能是手动处理了。
20个英文的话,长度是20(也可中英混杂),代码如下:
private void Form1_Load(object sender, EventArgs e)
{
SetTextBoxMaxLength();
}
void SetTextBoxMaxLength()
{
var cons = GetAllControls(this, typeof(TextBox));
cons.ForEach(con => {
con.TextChanged += new EventHandler(con_TextChanged);
});
}
void con_TextChanged(object sender, EventArgs e)
{
var txt = sender as TextBox;
int curLength = Encoding.Default.GetByteCount(txt.Text);
if (curLength > 6)
txt.BackColor = Color.Red;
else
txt.BackColor = Color.FromName("Window");
}
public static List<Control> GetAllControls(Control control, Type type)
{
List<Control> cons = new List<Control>();
foreach (Control c in control.Controls)
{
FindAllControls(c, ref cons, type);
if (c.GetType() == type) cons.Add(c);
}
return cons;
}
public static void FindAllControls(Control curCon, ref List<Control> cons, Type type)
{
foreach (Control c in curCon.Controls)
{
FindAllControls(c, ref cons, type);
if (c.GetType() == type) cons.Add(c);
}
}
具体的看需要修改关键代码就行了。
展开全部
设置maxlength为20
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在控件属性中的MaxLength属性中输入20就好了
追问
没用啊,好像因为不是用字节来判断,所以输入中文或英文的位数都一样的,本来中文一个字是2个字节的,可是现在好像没区别的
追答
下面这个 HTML 表单带有最大长度分别是 85 和 55 个字符的两个输入字段:
Name:
Email:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询