Для проекта я создал собственный столбец DataGridView, который содержит элементы управления NumericUpDown. Он реализован по аналогии с предложением Microsoft
Колонка отлично работает под Windows XP. Он принимает введенные цифры и десятичный разделитель.
В Windows Vista возникает странная проблема: элемент управления принимает только десятичный разделитель, введенный цифровой клавиатурой, но не из основного блока клавиатуры.
Я должен добавить, что я работаю с немецкими (Швейцария) настройками культуры в Windows Vista и активирована раскладка клавиатуры для Германии (Швейцария). Десятичный разделитель в Швейцарии:
У кого-то есть идея по причине и, возможно, решение? Большое спасибо!
Michael
Изменить:
Я нашел решение своей проблемы.
Чтобы прояснить ситуацию немного больше. Элемент управления NumericUpDown, который я использую, реализует IDataGridViewEditingControl и наследуется от NumericUpDown. Из-за IDataGridViewEditingControl я реализую метод EditingControlWantsInputKey. И при реализации этого метода я обнаружил свою ошибку или что пошло не так.
В методе я проверил введенные ключи и решил, должен ли контроль обрабатывать его. Но для десятичного разделителя я ожидал только Keys.Decimal . В моем особом (неправильном) случае не удалось найти ключ. Чего не хватало, так это искать Keys.OemPeriod . И это было исправлением.