Настраиваемый столбец DataGridView не принимает введенный десятичный разделитель в Windows Vista

StackOverflow https://stackoverflow.com/questions/157144

Вопрос

Для проекта я создал пользовательский столбец DataGridView, который содержит элементы управления NumericUpDown.Это реализовано аналогично предложению из Майкрософт

Колонка отлично работает под Windows XP.Он принимает введенные цифры и десятичный разделитель.В Windows Vista у меня странная проблема, заключающаяся в том, что элемент управления принимает только десятичный разделитель, введенный цифровой клавиатурой, но не из основного блока клавиатуры.

Я должен добавить, что я работаю с настройками немецкого (швейцарского) языка в Windows Vista, и немецкая (швейцарская) раскладка клавиатуры активирована.Десятичный разделитель в Швейцарии равен .

У кого-то есть идея о причине и, возможно, решение?Большое вам спасибо!

Майкл

Редактировать: Я нашел решение своей проблемы.

  1. Чтобы еще немного прояснить ситуацию.Элемент управления NumericUpDown, который я использую, реализует IDataGridViewEditingControl и наследуется от NumericUpDown.Из-за IDataGridViewEditingControl я реализую метод EditingControlWantsInputKey.И при реализации этого метода я обнаружил свою ошибку или то, что пошло не так.

  2. В этом методе я проверил введенные ключи и решил, должен ли элемент управления справиться с этим.Но для десятичного разделителя я ожидал только Ключи.Десятичный.В моем особом (неправильном) случае ключ не мог быть подобран.Чего не хватало, так это поискать Ключи.Производственный период слишком.И это было решение проблемы.

Это было полезно?

Решение

Не могли бы вы, пожалуйста, вставить свой код OnKeyDown и / или OnKeyPress?По крайней мере, соответствующий код фильтрации ключей.Так будет легче выявить любые проблемы.

Кстати, обычно я использую как британско-английскую, так и бразильско-португальскую клавиатуры, так что у меня была своя доля подобных проблем.Это как бы вынуждает вас стать экспертом по локализации :)

Редактировать:О, извините, просто перечитал и понял, что вы используете элемент управления stock NumericUpDown.Можете ли вы указать мне на код столбца, чтобы я мог попробовать его здесь?Вероятно, языковой стандарт не устанавливается для элемента управления, и в какой-то момент вам придется сделать это вручную.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top