111,083
社区成员




private void tbCapacity_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar == 48))
{
e.Handled = true;
}
}
public static class Extensions
{
public static void 判断是数字啦(this TextBox ctrol)
{
ctrol.KeyPress += (s, e) =>
{
if (e.KeyChar < 34)
return;
if (e.KeyChar != '.' && (e.KeyChar < '0' || e.KeyChar > '9'))
{
e.Handled = true;
return;
}
var str = ctrol.Text + e.KeyChar;
if (str == "-")
return;
double x;
if(! double.TryParse( str, out x ))
e.Handled = true;
};
}
}
那么你就能在任何一个窗口的初始化中调用它,例如写 private void Form1_Load(object sender, EventArgs e)
{
this.textBox1.判断是数字啦();
}
上面我只是乱写的,比如说“34”这个并没有查一下实际的控制键 ASCII 码,或许改为20更准确?你自己查一下 ASCII 码表。