powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DatagridView-обработка ошибки ввода
4 сообщений из 4, страница 1 из 1
DatagridView-обработка ошибки ввода
    #37836608
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Данные вносятся через DatagridView (Связка Dataset,BindingSource,Datagrid). В таблице есть ключевые поля.
Как мне сделать так, чтобы , если пользователь вводит новую строку и не ввел данные в ключевые поля и пытается перейти на другую строку, то программа бы выдавала предупреждение и фокус передавался этой ячейке.
При обработке события DataError сообщение показываю, но дальше происходит отмена редактирования и вся строка исчезает. А нужно , чтобы ошибочная ячейка переходила в режим редактирования.
Спасибо.
...
Рейтинг: 0 / 0
DatagridView-обработка ошибки ввода
    #37836726
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lexx_SQL,

На форме дожна быть DataGridView1 подписанная на нижеприведённое событие.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub DataGridView1_RowValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.RowValidating
        Dim myDGV As DataGridView = sender

        If IsDBNull(myDGV.CurrentRow.Cells("Col1").Value) Then
            myDGV.CurrentCell = myDGV.CurrentRow.Cells("Col1")
            e.Cancel = True
            MessageBox.Show(String.Format("Введите данные в поле '{0}'", myDGV.Columns(myDGV.CurrentCell.ColumnIndex).HeaderText))
        End If
End Sub



Советую не морочиться сотслеживанием, т.к. еще надо следить за уникальностью значения, форматом данных ....
посмотри в сторону нижеприведённых свойств у DataTable, возможно стоит вообще заблокировать для изменений ключевое поле???

myDT.PrimaryKey = New DataColumn() {myDT.Columns("Название поля")}
myDT.Columns("Название поля").AutoIncrement = True
myDT.Columns("Название поля").AutoIncrementSeed = 1
myDT.Columns("Название поля").AutoIncrementStep = 1
...
Рейтинг: 0 / 0
DatagridView-обработка ошибки ввода
    #37837335
Lexx_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WitC,
спасибо
...
Рейтинг: 0 / 0
DatagridView-обработка ошибки ввода
    #38159027
Владимир37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. У меня такая же задача, редактирование данных прямо в DataGridView. Для проверки данных я использую как раз событие RowValidating. Но есть одна проблема. У меня используется bindingNavigator с кнопками добавления и удаления записи. Так вот, когда строка отредактирована и в ней некорректные данные, то при попытке перейти к другой строке событие RowValidating отрабатывает нормально. Но если я попробую нажать кнопку добавить в bindingNavigator, то сначала добавляется строка, а потом срабатывает событие RowValidating. Это неправильно. Нужно, чтобы пользователь вообще не мог уйти со строки, пока не введет правильные данные. Уже пол дня пытаюсь это победить, ну никак не получается. Помогите пожалуйста. Пишу на c#
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DatagridView-обработка ошибки ввода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]