我目前正在处理DataGridView控件的KeyDown事件。其中一个列由计算出的值填充,如果用户希望,我希望用户能够覆盖单元格的值。
当用户按下数字键时,单元格进入编辑模式,允许用户覆盖值。 如果按键不是数字,则不会发生任何事情...
这个功能已经工作得很好了... 问题是我觉得代码很丑... 我似乎找不到一种简洁的方法来处理所有数字键,在一个条件语句中处理所有可能的数字键,所以我使用了switch case结构来处理所有可能的数字键,如下所示:
switch (e.KeyCode)
{
case Keys.D0:
case Keys.D1:
case Keys.D2:
case Keys.D3:
case Keys.D4:
case Keys.D5:
case Keys.D6:
case Keys.D7:
case Keys.D8:
case Keys.D9:
case Keys.Decimal:
case Keys.NumPad0:
case Keys.NumPad1:
case Keys.NumPad2:
case Keys.NumPad3:
case Keys.NumPad4:
case Keys.NumPad5:
case Keys.NumPad6:
case Keys.NumPad7:
case Keys.NumPad8:
case Keys.NumPad9:
[code to make the cell go to editMode, etc...]
当然,它可以工作,但一定有更好、更短的方法,对吧?
我在谷歌上只找到将 e.KeyCode 转换为 char 的方法,但是当使用数字键时,即使是数字值,它也会给出字母...
谢谢。