c#如何使Textbox只可以输入10个中文或者只可以输入20个英文、数字(画面有很多textbox控件的​)

 我来答
说着笑着d午后
2013-12-12 · TA获得超过282个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:268万
展开全部

有个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);
            }
        }


具体的看需要修改关键代码就行了。

拽Sure
2013-12-12 · TA获得超过437个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:147万
展开全部
设置maxlength为20
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天唐地御
2013-12-12 · 超过10用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:33.2万
展开全部
在控件属性中的MaxLength属性中输入20就好了
追问
没用啊,好像因为不是用字节来判断,所以输入中文或英文的位数都一样的,本来中文一个字是2个字节的,可是现在好像没区别的
追答
下面这个 HTML 表单带有最大长度分别是 85 和 55 个字符的两个输入字段:

Name:

Email:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式