日期:2014-05-17  浏览次数:20779 次

C# winform
  private void txtMonth_TextChanged(object sender, EventArgs e)
       {
           if (!System.Text.RegularExpressions.Regex.IsMatch(txtMonth.Text, @"^\d*$"))
           {
               txtMonth.Undo();
           }
         
           if (Regex.IsMatch(txtMonth.Text.Trim(), @"^([1-9]|1[0-2])$"))
           {
               txtMonth.Text = txtMonth.Text;
           }
           else
           {
              txtMonth.Undo();
           }
这个程序实现的是输入数字1-12之间的数据,但是假如我输入14或者别的二位数字在else语句处就会报异常说是栈溢出了。请给位帮帮忙啊
c# winform

------解决方案--------------------
Undo会调用txtMonth_TextChanged 死循环了。
------解决方案--------------------
用textBox1.Text = "";   清空TextBox吧,可以MessageBox一个信息。
------解决方案--------------------
else 直接把txtmonth 清空看看,
看代码应该是限制输入月份的,
为什么不用 combox 呢
------解决方案--------------------
引用:
用textBox1.Text = "";   清空TextBox吧,可以MessageBox一个信息。


正解!
------解决方案--------------------
引用:
引用:用textBox1.Text = "";   清空TextBox吧,可以MessageBox一个信息。

正解!