gpt4 book ai didi

c# - KeyDown 事件 - 如何轻松知道按下的键是否为数字?

转载 作者:可可西里 更新时间:2023-11-01 09:17:23 25 4
gpt4 key购买 nike

我目前正在处理 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...]

当然,它有效,但必须有更好、更短的方法,对吧?

我使用 Google 所能找到的全部是将 e.KeyCode 转换为 char,但是当使用数字键时,它甚至会给出数字值的字母...

谢谢。

最佳答案

尝试

if ((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) ||
(e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) ||
e.KeyCode == Keys.Decimal)
{
// Edit mode
}

关于c# - KeyDown 事件 - 如何轻松知道按下的键是否为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157106/

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