gpt4 book ai didi

c# - 如何更好地使用 KeyDown 事件验证?

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:35 25 4
gpt4 key购买 nike

我有几个只需要允许数字输入的文本框。问题是我必须为另一个只允许数值的 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;
}

最佳答案

你可以通过三种方式做到这一点

  1. 您可以使用常用函数来检查输入的 key 是否有效。然后您从所有按键事件处理程序中调用该函数。如果您有不同形式的文本框,这很适合。
  2. 如果所有文本框都在同一个表单上,在这种情况下,将所有按键按下事件处理程序绑定(bind)到同一个函数。
  3. 您可以让您的自定义文本框控件仅接受必需的键。检查this发布,它可能对你有帮助。

通常,您可以通过((System.Windows.Forms.Control)(sender)).Name

检索文本框控件id/名称

希望这对您有所帮助。

关于c# - 如何更好地使用 KeyDown 事件验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8905116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com