c#如何使Textbox只可以输入10个中文或者只可以输入20个英文、数字(画面有很多textbox控件的)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何使Textbox只可以输入10个中文或者只可以输入20个英文、数字(画面有很多textbox控件的)相关的知识,希望对你有一定的参考价值。
有个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);
具体的看需要修改关键代码就行了。
参考技术A 设置maxlength为20 参考技术B 在控件属性中的MaxLength属性中输入20就好了追问没用啊,好像因为不是用字节来判断,所以输入中文或英文的位数都一样的,本来中文一个字是2个字节的,可是现在好像没区别的
追答下面这个 html 表单带有最大长度分别是 85 和 55 个字符的两个输入字段:
Name:
Email:
C#:隐藏与显示textbox的滚动条
能不能隐藏textbox的滚动条,当文字足够多时才显示滚动条
textbox一般情况下的滚动条设置都是None啊,textBox1.ScrollBars = ScrollBars.Horizontal;
你这里可以参考这个属性的几个值,默认提供的只有4中
None,both(成对有或者没有)
Horizontal(只显示横滚动条)
Vertical(只显示综滚动条)
如果这个不能实现你想要的功能,你可以先设置为None
在textchanged事件中判断text.length,如果超过了你想要的字数再动态设置这个属性为想要的属性。
不知道能不能令你满意 参考技术A 能啊 把那个什么属性 (忘了什么名了)设置成自动就行了
以上是关于c#如何使Textbox只可以输入10个中文或者只可以输入20个英文、数字(画面有很多textbox控件的)的主要内容,如果未能解决你的问题,请参考以下文章
c# 的WinForm 中 textbox内如何限制只输入为0-100之间的数字?