这样可以实现,在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();
}
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();
}
rouser(明灭由心) ,
能说说具体是什么问题吗?
放一个contextMenu控件,再把textBox的ContextMenu指向它,这样就不会有右键菜单了。
textBox1.Text就是.如果要转换为数字,用Convert.ToInt32(textBox1.Text)或者int.Parse(textBox1.Text);
{
if (!(char.IsDigit(e.KeyChar) || (int)e.KeyChar == (int)Keys.Back || (int)e.KeyChar == (int)Keys.Delete) )
{
e.Handled = true;
}
}