我有幾個文本框只需要輸入數字。問題是我必須複製&將下面的代碼粘貼到另一個僅允許數字值的TextBox。有沒有更簡單的方法來實現?如使用函數或繼承?如何更好地使用KeyDown事件驗證?
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;
}
在我看來,大案(從D0開始,以Delete結尾)可以完全消除。你沒有做任何事情,下面的塊(檢查A-Z範圍)不需要其他的東西 - 我的意思是A和Z之間的任何東西都不能滿足大案例中的條件。 – 2012-01-18 05:47:25