请教TextBox控制输入的问题
在我的程序里面有这么一段: 
 private   void   period_tb_KeyPress(object   sender,   KeyPressEventArgs   e) 
                         { 
                                     e.Handled   =   (e.KeyChar    <    '0 '   ||   e.KeyChar   >     '9 '   ||   period_tb.Text.Length   >    1); 
                                     if   (e.KeyChar   ==   (Char)Keys.Back) 
                                     { 
                                                 e.Handled   =   false; 
                                     } 
                         } 
 注:      period_tb为TextBox   
 用来控制最多只输入2位0-9的数字,   现在我的问题是,   当这个TextBox输入2位数字时,   我想双击这个TextBox来选中里面的Text(或者用鼠标将里面的Text全选),   然后就填上另外的数字,   但此时的TextBox已经被我控制不能再输入任何东西了(当然,   除了BackSpace),   大家有什么办法能让我在选中的情况下自由的输入其他数字呢?
------解决方案--------------------你可以用正則表達式來来控制0-9的数字,這個比你的效果一樣。双击这个TextBox来选中里面的Text(或者用鼠标将里面的Text全选), 然后就填上另外的数字,這個我也不曉得﹗抱歉﹗ 
      private void txtSerialNo_TextChanged(object sender, EventArgs e) 
         { 
             string itemValue = txtSerialNo.Text.ToString(); 
             if (IsNumeric(itemValue) == true) 
             { 
                 ds.Tables[ "Dept "].Rows[bs.Position][ "SerialNo "] = int.Parse(txtSerialNo.Text.ToString().Trim()); 
             } 
             else 
             { 
                 txtSerialNo.Text =  " "; 
             } 
         }   
         private static bool IsNumeric(string itemValue) 
         { 
             return (IsRegEx( "^(-?[0-9]*[.]*[0-9]{0,3})$ ", itemValue)); 
         }   
         private static bool IsRegEx(string regExValue, string itemValue) 
         {   
             try 
             { 
                 Regex regex = new System.Text.RegularExpressions.Regex(regExValue); 
                 if (regex.IsMatch(itemValue)) return true; 
                 else return false; 
             } 
             catch (Exception) 
             { 
                 return false; 
             } 
             finally 
             { 
             } 
         }
------解决方案--------------------如下就可以了: 
 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
 { 
 	if (this.textBox1.SelectionLength == 0) 
 	{ 
 		e.Handled = (e.KeyChar  <  '0 ' || e.KeyChar >   '9 ' || textBox1.Text.Length >  1); 
 		if (e.KeyChar == (Char)Keys.Back) 
 		{ 
 			e.Handled = false; 
 		} 
 	} 
 }