这样可以实现,在textbox的KeyPress中:
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8))
e.Handled = true;
base.OnKeyPress(e);}说明:
e.KeyChar != 8是为了让退格键起作用。如果用鼠标,还是可以粘贴上非数字键.
所以,还要在textchanged事件中,加入.private void textBox1_TextChanged(object sender, System.EventArgs e)
{
if(!System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text,@"^\d*$"))textBox1.Undo();
}

解决方案 »

  1.   


    rouser(明灭由心) ,
    能说说具体是什么问题吗?
      

  2.   

    防止用鼠标粘贴也可以用这种方法:
      放一个contextMenu控件,再把textBox的ContextMenu指向它,这样就不会有右键菜单了。
      

  3.   

    再请教大家一个问题,如何获取 textBox 控件中输入的字符数啊? 谢谢
      

  4.   


    textBox1.Text就是.如果要转换为数字,用Convert.ToInt32(textBox1.Text)或者int.Parse(textBox1.Text);
      

  5.   

    to:xiaha3(夏) 呵呵,太粗心了,少了一个点xiaha3(夏) 说的是textBox1.Text.Length
      

  6.   

    另外,让TextBox只能输入数字的话,我这里有个办法,个人感觉良好,大家试试看:private void T13_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if (!(char.IsDigit(e.KeyChar) || (int)e.KeyChar == (int)Keys.Back || (int)e.KeyChar == (int)Keys.Delete) )
    {
    e.Handled = true;

    }