События верификации DataGridView

элемент управления b datagridview b

Сетка DataGridView — это элемент управления Windows Forms, производный от базового класса Control, Являющийся сложным контейнером данных. Элемент управления DataGridView Позволяет вам управлять верификацией на нескольких уровнях. Сама сетка является элементом управления и, таким образом, возбуждает события Validating И Validated, Когда фокус уходит с сетки. Однако обычно вы захотите управлять верификацией несколько ближе к верифицируемым данным, на уровне либо отдельной строки,, либо отдельной ячейки. На этот случай DataGridView Запускает события RowValidating И RowValidated Всякий раз, когда в сетке сменяется выбранная строка. Аналогичным образом, когда фокус переходит от ячейки к ячейке в сетке, запускаются события CellValidating И CellValidated. Эти события следуют той же модели, что и события верификации элемента управления, позволяя вам отменить верификацию, установив свойство Cancel Аргумента события равным True. В случае события RowValidating Типом аргумента события является DataGridViewCellCancelEventArgs; Для CellValidating Типом аргумента события является DataGridViewCellVali — DatingEventArgs. Оба эти типа дают вам доступ к текущим Rowindex И Columnindex, И они имеют свойство Cancel, Которое можно установить в True Для отмены верификации. Если верификация терпит неудачу, DataGridview Удерживает фокус на текущей ячейке. Как вы можете помнить из прочитанного ранее, всякий раз, когда вы перемещаете фокус в привязанной к данным сетке, для ячейки, которую вы покинули, запускается событие CellParsing, А для ячейки, к которой вы перешли, запускается событие CellFormatting. Что касается верификации, вы должны иметь в виду, что событие CellValidating Запускается до события CellParsing. Поэтому логика верификации, которую вы применяете в обработчике для CellValidating, Должна работать с отображаемым содержанием ячейки, которое не обязательно прямо соответствует сохраняемому содержанию соответствующего компонента данных в источнике данных. Если вы в целях отображения выполняете преобразования или форматирование, и хотите верифицировать данные перед тем, как они будут сброшены обратно в нижележащий источник данных, но после того, как пройдет процесс анализа, вам нужно вызывать эту логику в обработчике события CellParsing, А не в обработчике CellValidating.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *