我在Form1
上有这个功能,我想对Form2
,Form3
等使用相同的功能,而不是重复每个窗体上的功能是否有任何方法使其可以访问所有?我试图做一个新的Class : Form
,然后从形式调用函数,但没有工作...使窗体功能可以访问所有窗体
public void tb_Leave(object sender, EventArgs e)
{
if ((sender as TextBox).Text.Count() < (sender as TextBox).MaxLength)
(sender as TextBox).Text = (sender as TextBox).Text.PadLeft((sender as TextBox).MaxLength, '0');
}
谢谢你的建议。
UPDATE
谢谢你的答案,他们的工作很好,但如果我想使用的X文本框同样的方法是什么? (就像我在用tb_Leave函数做的那样)
我的意思是,用我的老方法,我只选择X文本框,并将离开事件发送到我的函数,你提到的方式我需要创建一个方法来调用另一个方法一个辅助类......但是我仍然需要在每个表单中创建一个方法来调用这个类,对吗?虽然,你的答案是非常有益的居然我只需要创建一个新的.cs用我所有的助手类:)
更新2 我在迁移这种方法
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;
}
}
问题文件当然,我知道processTabKey();
只能在活动表单上工作,但如何使其在Form
类以外工作?由于
由于该方法没有任何状态,你可以将它作为静态方法放入静态类中。 – sloth 2013-04-25 11:52:49
设置你的方法public static void,然后你可以通过formName.methodName() – Obama 2013-04-25 11:56:01
关于第二个更新来从其他窗体调用它。这是TextBox扩展方法的签名。扩展方法应遵循其规则。请检查http://csharp.net-tutorials.com/csharp-3.0/extension-methods/ – Steve 2013-04-25 16:55:19