我需要处理我的文本框的按键事件,以便用户只输入文本框中的数字数据,我的代码工作正常,我发布在下面,但我担心的是,我有超过30个文本框具有相同的要求,我不想为30个文本框的按键事件编写相同的代码,但我不能在方法中编写此代码并调用该方法..有什么方法我可以解决这个问题,所以我可以在一个地方扭曲代码,并在文本框的按键事件或任何其他方式调用它,使我的代码看起来标准,减少行,我发布我的代码
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.'
&& (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
答案 0 :(得分:1)
当然,您可以为所有文本框使用一个事件处理程序
TextBox tb = new TextBox();
tb.KeyPress += tb_KeyPress;
TextBox tb2 = new TextBox();
tb2.KeyPress += tb_KeyPress;
void tb_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.'
&& (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
}