【发布时间】:2013-04-26 08:55:08
【问题描述】:
有什么方法可以从具有帮助器的 MyClass.cs 中调用 processTabKey();,并将其用于调用它的每个表单,而不是在每个表单上创建一个方法?
例如,Form1.cs 从包含processTabKey(); 的MyClass.cs 调用myMethod(),然后移动到Form1.cs 上的下一个控件?
感谢您的建议。 MyClass.cs
public static void TextBoxKeyDown(this TextBox tb, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
case Keys.Add:
e.SuppressKeyPress = true;
processTabKey(true);
break;
case Keys.Decimal:
if (tb.Tag == "importe")
{
e.SuppressKeyPress = true;
processTabKey(true);
}
break;
case Keys.Subtract:
e.SuppressKeyPress = true;
processTabKey(false);
break;
}
}
Form1.cs
此方法调用帮助程序以使用 ADD、SUBSTRACT、ENTER 或 DECIMAL 键移动到下一个元素。需要帮助器才能对每个表单使用相同的方法。
private void tb_KeyDown(object sender, KeyPressEventArgs e)
{
(sender as TextBox).TextBoxKeyDown(e);
}
【问题讨论】:
-
向我们展示代码,否则我不确定您要问什么
-
完成@Habib 这是我正在尝试使用的代码
-
这是不明智的,这些键已经有用了。 Enter 键操作表单的默认按钮。在多行文本框中,它添加了一个新行。许多键入数字的用户将使用 Decimal 键。输入符号的加法和减法键也是如此。避免让你的 UI 难以使用。并添加完全无法发现的功能。光标和 Tab 键已经可以很好地实现焦点更改,每个用户都知道如何使用它们。