默认显示2000-01-01,用户输入20050123时相应数字自动输入到相应位置。有点像输入软件注册号。'-'始终在文本框内存在,删不掉。

解决方案 »

  1.   

    http://blog.csdn.net/xrascal/archive/2004/09/29/120798.aspx改一改就行了。
      

  2.   

    在vs2005下提供了新的Mask控件.
      

  3.   

    2005的Mask控件能在2003调用吗?好像不行吧一个是2.0,一个是1.1
      

  4.   

    请大侠们帮我看看下面代码。帮我补充一下,或者告诉我更好的解决办法。另:删除键不知道怎么处理,还有日期验证。要的效果是:
    1、文本框内只能输入数字。
    2、文本框内的初始值是0000-00-00。
    3、当用户输入数字,比如20051101时,输入的数字自动占据相应位置,文本框显示:2005-11-01。
    4、用户退格或按删除键时不能删除数字之间的'-'字符,被删除的相应位置自动变成0。
    //textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)事件处理
    int startPos = textBox1.SelectionStart;

    if(Char.IsDigit(e.KeyChar) )
    {
      if(startPos < 10)
      {
    if(startPos == 4 || startPos == 7)
    startPos++;
    str[startPos] = e.KeyChar;
    textBox1.Text = str.ToString();
    startPos++;
       }
    }
    if(e.KeyChar == 8)
    {
    if(startPos == 5 || startPos == 8)
    {
    str[startPos-2] = '0';
    startPos -=2;
    }
    else
    {
    str[startPos-1] = '0';
    startPos--;
    }
    }
    textBox1.Text = str.ToString();
    textBox1.SelectionStart = startPos;
    e.Handled = true;