我有几个TextBox,只需要允许数字输入。问题是我必须复制&将下面的代码粘贴到另一个只允许数值的TextBox。有没有更简单的方法来实现?比如使用函数还是继承?
private void txtCheckVoucher_Amount_KeyDown(object sender, KeyEventArgs e)
{
if (Control.ModifierKeys == Keys.Shift)
{
e.SuppressKeyPress = true;
return;
}
if (((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) ||
(e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) ||
e.KeyCode == Keys.Decimal || e.KeyCode == Keys.OemPeriod ||
e.KeyCode == Keys.Back || e.KeyCode == Keys.Tab ||
e.KeyCode == Keys.Left || e.KeyCode == Keys.Right ||
e.KeyCode == Keys.End || e.KeyCode == Keys.Home ||
e.KeyCode == Keys.ShiftKey || e.KeyCode == Keys.Delete))
{
}
else if (e.KeyCode >= Keys.A || e.KeyCode <= Keys.Z)
e.SuppressKeyPress = true;
}
答案 0 :(得分:3)
你可以用三种方式做到这一点
通常,您可以按((System.Windows.Forms.Control)(sender)).Name
希望这有帮助。
答案 1 :(得分:1)
如果文本框需要相同的KeyDown事件逻辑,为什么不将两个文本框同时订阅到同一个事件处理程序?
您可以将KeyDown事件设置为相同的txtCheckVoucher_Amount_KeyDown()方法。
答案 2 :(得分:1)
您可以从所有其他文本框的KeyDown事件中调用txtCheckVoucher_Amount_KeyDown()。
答案 3 :(得分:0)
简单地将相同的KeyDown事件txtCheckVoucher_Amount_KeyDown()
分配给所有文本框