在其他地方声明文本框按键事件代码并调用它

本文关键字:事件 代码 调用 文本 方声明 其他 声明 | 更新日期: 2023-09-27 18:06:05

我需要处理我的文本框的按键事件,以便用户在文本框中只输入数字数据,我有我的代码工作良好,我在下面发布它,但我担心的是,我有超过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;
        }

在其他地方声明文本框按键事件代码并调用它

当然,您可以为所有文本框使用一个事件处理程序

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;
    }
  }