[英]How to use of KeyDown Event Validation in a better way?
我有幾個文本框,只需要數字輸入即可。 問題是我必須將下面的代碼復制並粘貼到另一個僅允許數字值的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;
}
您可以通過三種方式進行
通常,您可以通過((System.Windows.Forms.Control)(sender)).Name
來檢索文本框控件的ID /名稱((System.Windows.Forms.Control)(sender)).Name
希望這可以幫助。
如果文本框需要相同的KeyDown事件邏輯,為什么不將兩個文本框都訂閱到同一事件處理程序呢?
您可以將KeyDown事件設置為相同的txtCheckVoucher_Amount_KeyDown()方法。
您可以從所有其他文本框的KeyDown事件中調用txtCheckVoucher_Amount_KeyDown()。
簡單地將相同的KeyDown事件txtCheckVoucher_Amount_KeyDown()
分配給所有文本框
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.