В моем проекте есть DataGridView, который пользователь может редактировать и сохранять в БД. Я пытаюсь добавить валидацию в DataGridView. (Требуются определенные столбцы и могут быть только номерами (в частности, удваивается)).datagridview отключить автоматический разбор
У меня возникли проблемы с работой над автоматизированным разбором, выполненным .Net за кулисами. Поведение DataGridView отличается в зависимости от того, покидает ли пользователь обязательное поле пустым или вводит что-то, что не может быть проанализировано как двойное (т. Е. Текст).
Простой случай: если пользователь оставляет обязательное поле пустым и щелкает Сохранить. Событие щелчка кнопки «Сохранить» срабатывает, и я могу проверить, что свойство Value ячейки установлено в DBNull
, и в этом случае я установил свойство ячейки ErrorText
и покажу MessageBox
.
Harder Case: Когда пользователь вводит текст, который не может быть проанализирован как двойной (например, «asdf»). Когда это происходит, как только ячейка теряет фокус, некоторые встроенные проверки .Net происходят за кулисами, и я получаю окно сообщения, показывающее трассировку стека. Я хочу полностью отключить эту проверку и просто выполнить свою собственную проверку, когда пользователь нажимает кнопку «Сохранить».
(До этого момента неверные данные не имеют значения). Кто-нибудь знает как это сделать?
Ни один из этих вариантов не работал. Установка CausesValidation = false, казалось, не повлияла, и с помощью обработчика CellValidating, который вы предположили, вызвал окно с сообщением об ошибке в form_load (при заполнении сетки), поскольку отмена события означает, что ему не удалось зафиксировать значение ячейки. – user2410449