我目前正在处理 DataGridView 控件的 KeyDown 事件。其中一列由计算值填充,我希望用户能够根据需要覆盖单元格值。
当用户按下数字键时,单元格进入 EditMode 并允许用户覆盖该值。如果键不是数字,则不会发生任何事情...
这工作得很好......问题是我发现它的代码很难看......我似乎找不到一种巧妙的方法来处理单一条件下的所有数字键,所以我做了一个开关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 转换为字符,但是当使用数字键时,它甚至会为数字值提供字母......
谢谢。