Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 自定义DataGridView列不接受在Windows Vista下输入的小数分隔符_.net_Datagridview_Windows Vista_Controls_Numericupdown - Fatal编程技术网

.net 自定义DataGridView列不接受在Windows Vista下输入的小数分隔符

.net 自定义DataGridView列不接受在Windows Vista下输入的小数分隔符,.net,datagridview,windows-vista,controls,numericupdown,.net,Datagridview,Windows Vista,Controls,Numericupdown,对于一个项目,我构建了一个自定义DataGridView列,其中包含NumericUpDown控件。它的实施类似于 该专栏在Windows XP下运行良好。它接受输入的数字和十进制分隔符。 在Windows Vista下,我遇到了一个奇怪的问题,控件只接受数字键盘输入的小数分隔符,而不接受键盘主块输入的小数分隔符 我必须补充一点,我在Windows Vista下使用德国(瑞士)文化设置,并且德国(瑞士)键盘布局已激活。瑞士的十进制分隔符是 有人对原因有想法,也许有解决办法?多谢各位 迈克尔 编辑

对于一个项目,我构建了一个自定义DataGridView列,其中包含NumericUpDown控件。它的实施类似于

该专栏在Windows XP下运行良好。它接受输入的数字和十进制分隔符。 在Windows Vista下,我遇到了一个奇怪的问题,控件只接受数字键盘输入的小数分隔符,而不接受键盘主块输入的小数分隔符

我必须补充一点,我在Windows Vista下使用德国(瑞士)文化设置,并且德国(瑞士)键盘布局已激活。瑞士的十进制分隔符是

有人对原因有想法,也许有解决办法?多谢各位

迈克尔

编辑: 我找到了解决我问题的办法

  • 再澄清一下情况。我使用的NumericUpDown控件实现IDataGridViewEditingControl并继承自NumericUpDown。由于IDataGridViewEditingControl,我实现了EditingControlWantInputKey方法。在这个方法的实施过程中,我发现了我的错误或者出了什么问题

  • 在这个方法中,我检查了输入的键,并决定控件是否必须处理它。但是对于小数分隔符,我只希望使用key.decimal。在我的特殊(错误)情况下,钥匙无法匹配。缺少的是寻找钥匙。奥姆佩里奥德也是。这就是解决办法


  • 你能粘贴你的OnKeyDown和/或OnKeyPress代码吗?至少包含相关的密钥筛选代码。这将使发现任何问题变得更容易

    顺便说一句,我通常同时使用英式英语和巴西葡萄牙语键盘,所以我也有自己的问题。这就迫使你成为本地化专家:)


    编辑:哦,抱歉,请重新阅读并理解您使用的是stock NumericUpDown控件。你能给我指一下列代码,让我在这里试试吗?可能没有为控件设置区域设置,您必须在某个时候手动执行此操作。

    非常感谢您的帮助!我找到了负责的代码并修复了它(参见问题中编辑的部分)。