有没有办法从MyClass.cs中调用processTabKey();
哪个有助手,并将它用于调用它的每个表单,而不是在每个表单上创建一个方法?
例如Form1.cs
来自myMethod()
的{{1}}来电MyClass.cs
,然后转到processTabKey();
上的下一个控件?
感谢您的建议。 的 MyClass.cs
Form1.cs
Form1.cs的
此方法使用ADD,SUBSTRACT,ENTER或DECIMAL键调用帮助程序以移动到下一个元素。需要帮助程序才能对每个表单使用相同的方法。
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;
}
}
答案 0 :(得分:0)
有可能通过创建一个瞬间,但我可以建议一个更合适的方式。您可以创建一个类并将要共享的所有方法放在该类中,然后从表单中调用该类。更有效的方法是对方法进行分组并创建不同的类,因此您不必以所有形式实现所有方法。
答案 1 :(得分:0)
找到了做到这一点的方法...... 的 MyClass.cs 强>
public static void TextBoxKeyDown(this TextBox tb, KeyEventArgs e, Control container)
{
switch (e.KeyCode)
{
case Keys.Enter:
case Keys.Add:
e.SuppressKeyPress = true;
container.SelectNextControl(tb, true, true, false, true);
//processTabKey(true);
break;
case Keys.Decimal:
if (tb.Tag == "importe")
{
e.SuppressKeyPress = true;
container.SelectNextControl(tb, true, true, false, true);
}
break;
case Keys.Subtract:
e.SuppressKeyPress = true;
container.SelectNextControl(tb, false, true, false, true);
break;
}
}
<强> Form1.cs的强>
private void tb_KeyDown(object sender, KeyEventArgs e)
{
(sender as TextBox).TextBoxKeyDown(e, this);
}