pharaoh.stores Ответов: 0

Datagridview cellvalidating не работает идеально с колонкой combobox в VB.NET


У меня есть редактируемый столбец combobox в Datagridview, и пользователь может выбрать элемент из него или ввести текст, и я использую событие CellValidating, чтобы сопоставить текст с элементами combobox

Если текста нет в элементах я запрещаю пользователю переходить в другую ячейку
он работает нормально, но проблема заключается в следующем : когда пользователь вводит текст no в списке и e.cancel=true
и пользователь нажимает кнопку Закрыть поле со списком прокрутки не работает нормально и должен нажать любое место в сетке, чтобы работать нормально.
как я могу отменить нажмите кнопку закрыть форму или запретить пользователю это делать

вот мой код :

Что я уже пробовал:

Private Sub DataGridView1_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating
        If TypeOf (sender.EditingControl) Is ComboBox Then
            Dim ComboBox As ComboBox = sender.EditingControl
            If (ComboBox IsNot Nothing) Then
                Dim ComboBoxText As String = e.FormattedValue
                If ComboBox.FindStringExact(ComboBoxText) > -1 Then
                    e.Cancel = False
                    DataGridView1.CurrentCell.Value = ComboBox.SelectedValue
                Else
                    e.Cancel = True
                    MsgBox("not found")
                End If
            End If
        End If
    End Sub

0 Ответов