日期:2014-05-19  浏览次数:20983 次

[求助]限制文本框的输入字符问题
写了1个小函数,可以限制文本框的输入,基本上是任意字符了.但是有点小问题啊

                public   static   char     TextLimit(char   Keyin,   string   ListString,   bool   EditBasp)
                {
                        string   TextLimt;//要限制的字符串
                        char   KeyOut;//返回值
                        if   (EditBasp   ==   true)//可以退格
                        {
                                TextLimt   =   ListString   +   (Char)8;
                        }
                        else
                        {
                                TextLimt   =   ListString.ToUpper();  
                        }
                        int   i;
                        i   =   TextLimt.IndexOf(Keyin);
                        if   (i   >   0)
                        {   KeyOut   =   Keyin;   }
                        else
                        {  
//这里不知道要怎么处理了,就想如果是限制的字符,就不做任何事情
                                //KeyOut   = ' '   ;     这个写法错误
                        }
                        return   KeyOut;
                }

//这是文本框的键盘事件

                private   void   textBox1_KeyPress(object   sender,   KeyPressEventArgs   e)
                {
                        e.KeyChar   =TextLimit(e.KeyChar   ,   "0123456789 ",   true         );
                }

问题就是,如果我限制     "0123456789 ",   只能输入1-9   ,那个0也变成无法输入了


------解决方案--------------------
if (i > 0)
{ KeyOut = Keyin; }
else
============
if(i> =0)
...
------解决方案--------------------
if (i > 0)
{ KeyOut = Keyin; }
改成
if (i > = 0)