プロジェクトでは、NumericUpDown コントロールを含むカスタム DataGridView 列を作成しました。Microsoftからの提案と同様に実装されています
この列は、Windows XP で正常に動作します。入力された数字と小数点記号を受け入れます。Windows Vista では、コントロールが数値キーパッドによって入力された小数点記号のみを受け入れ、キーボードのメイン ブロックからは受け入れないという奇妙な問題があります。
Windows Vista でドイツ語 (スイス) のカルチャ設定を使用していて、ドイツ語 (スイス) のキーボード レイアウトが有効になっていることを付け加えておきます。スイスの小数点記号は です。
誰かがその理由とおそらく解決策について考えを持っていますか? どうもありがとうございました!
マイケル
編集: 問題の解決策を見つけました。
状況をもう少し明確にするために。私が使用する NumericUpDown コントロールは、IDataGridViewEditingControl を実装し、NumericUpDown から継承します。IDataGridViewEditingControl があるため、EditingControlWantsInputKey メソッドを実装します。そして、このメソッドの実装で、自分の間違いや何がうまくいかなかったのかを見つけました。
メソッドでは、入力されたキーを検査し、コントロールがそれを処理する必要があるかどうかを判断しました。しかし、小数点記号については、Keys.Decimalのみを期待していました。私の特別な (間違った) ケースでは、キーを一致させることができませんでした。欠けていたのは、 Keys.OemPeriodも探すことでした。そして、それが修正でした。