Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Элемент управления DataGridView заменяет и добавляет функции в элемент управления DataGrid; однако элемент управления DataGrid сохраняется как для обратной совместимости, так и для дальнейшего использования, если вы выберете. Дополнительные сведения см. в разделе Различия между управляющими элементами DataGridView и DataGrid в Windows Forms.
Для элемента управления DataGrid Windows Forms доступно два типа проверки входных данных. Если пользователь пытается ввести значение, которое является недопустимым типом данных для ячейки, например строкой в целое число, то новое недопустимое значение заменяется старым значением. Такая проверка входных данных выполняется автоматически и не может быть настроена.
Другой тип проверки входных данных можно использовать для отклонения любых неприемлемых данных, например 0 в поле, которое должно быть больше или равно 1, или неуместной строке. Это делается в наборе данных путем записи обработчика событий для события ColumnChanging или RowChanging. В приведенном ниже примере используется событие ColumnChanging, так как недопустимое значение запрещено для столбца Product, в частности. Вы можете использовать событие RowChanging для проверки того, что значение столбца End Date будет позже столбца "Дата начала" в той же строке.
Проверка входных данных пользователем
Напишите код для обработки события ColumnChanging для соответствующей таблицы. При обнаружении неуместных входных данных вызовите метод SetColumnError объекта DataRow.
Private Sub Customers_ColumnChanging(ByVal sender As Object, _ ByVal e As System.Data.DataColumnChangeEventArgs) ' Only check for errors in the Product column If (e.Column.ColumnName.Equals("Product")) Then ' Do not allow "Automobile" as a product. If CType(e.ProposedValue, String) = "Automobile" Then Dim badValue As Object = e.ProposedValue e.ProposedValue = "Bad Data" e.Row.RowError = "The Product column contains an error" e.Row.SetColumnError(e.Column, "Product cannot be " & _ CType(badValue, String)) End If End If End Sub//Handle column changing events on the Customers table private void Customers_ColumnChanging(object sender, System.Data.DataColumnChangeEventArgs e) { //Only check for errors in the Product column if (e.Column.ColumnName.Equals("Product")) { //Do not allow "Automobile" as a product if (e.ProposedValue.Equals("Automobile")) { object badValue = e.ProposedValue; e.ProposedValue = "Bad Data"; e.Row.RowError = "The Product column contains an error"; e.Row.SetColumnError(e.Column, "Product cannot be " + badValue); } } }Подключите обработчик событий к событию.
Поместите следующий код в событие Load формы или в её конструктор.
' Assumes the grid is bound to a dataset called customersDataSet1 ' with a table called Customers. ' Put this code in the form's Load event or its constructor. AddHandler customersDataSet1.Tables("Customers").ColumnChanging, AddressOf Customers_ColumnChanging// Assumes the grid is bound to a dataset called customersDataSet1 // with a table called Customers. // Put this code in the form's Load event or its constructor. customersDataSet1.Tables["Customers"].ColumnChanging += new DataColumnChangeEventHandler(this.Customers_ColumnChanging);
См. также
.NET Desktop feedback