多个TextChanged和KeyPress事件

时间:2016-08-24 06:17:49

标签: c#

我有很多TextBox个控件。对于每个TextBox控件,我都会获得text_Changed和key_Press事件。因此,我的Form.cs变得太拥挤了。我的问题是,是否有可能让这个空间更自由?有些事件只包含一个功能。

示例代码:

private void txtItem_TextChanged(object sender, EventArgs e)
{
    showButtonSave();
}

private void txtItem_KeyPress(object sender, KeyPressEventArgs e)
{
    showButtonSave();
    char ch = e.KeyChar;
    if (ch == (char)Keys.Enter)
    e.Handled = true;
}

private void txtItem2_TextChanged(object sender, EventArgs e)
{
    showButtonSave();
}

private void txtItem2_KeyPress(object sender, KeyPressEventArgs e)
{
    showButtonSave();
    char ch = e.KeyChar;
    if (ch == (char)Keys.Enter)
    e.Handled = true;
 }

2 个答案:

答案 0 :(得分:1)

您可以为每种类型(txtItem_TextChanged / txtItem_KeyPress)创建一个事件,并将其映射到所有TextBox。在sender的帮助下,您可以根据需要获得实际控制和操作。

答案 1 :(得分:1)

txtItem2上,您可以转到其属性,并在其中显示ontextchange,您应该看到它设置为txtItem2_KeyPress将其更改为txtItem_KeyPress然后它们都会使用

private void txtItem_KeyPress(object sender, KeyPressEventArgs e)
{
  showButtonSave();
  char ch = e.KeyChar;
  if (ch == (char)Keys.Enter)
  e.Handled = true;
}