prafulla1978 Ответов: 0

Как автозаполнить текстовое поле в datagrid of VB.NET


у меня есть datagridview в моей оконной форме vb.net проект. я поставил следующий код для вызова textbox4 на datagridview столбца 3
If Not e.RowIndex = -1 Then
           If e.ColumnIndex = 3 Then
               TextBox4 = New TextBox()
               DgTotalInput.Controls.Add(TextBox4)
               Dim oRectangle As Rectangle = DgTotalInput.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, True)
               TextBox4.Size = New Size(oRectangle.Width, oRectangle.Height)
               TextBox4.Location = New Point(oRectangle.X, oRectangle.Y)
               TextBox4.Focus()

из приведенного выше кода я вызываю textbox в datagrid
но для автозаполнения я прикрепил данные столбца 3 строки к AutoCompleteStringCollection
т.е.
Dim col As New AutoCompleteStringCollection

а код есть
For i = 0 To DgTotalInput.Rows.Count - 2
            col.Add(DgTotalInput.Rows(i).Cells(3).Value)
        Next
        TextBox4.AutoCompleteCustomSource = col
        TextBox4.AutoCompleteSource = AutoCompleteSource.CustomSource


когда я набираю Буквы в textbox4, он показывает предложения правильно, но проблема возникает, когда я набираю буквы, когда textbox находится в сетке, он не показывает предложения, почему? а что такое решение ?

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

Private Sub TextBox4_GotFocus(sender As Object, e As EventArgs) Handles TextBox4.GotFocus
       Dim col As New AutoCompleteStringCollection
       For i = 0 To DgTotalInput.Rows.Count - 2
           col.Add(DgTotalInput.Rows(i).Cells(3).Value)
       Next
       TextBox4.AutoCompleteCustomSource = col
       TextBox4.AutoCompleteSource = AutoCompleteSource.CustomSource
   End Sub

Gerry Schmitz

Похоже, вы создаете список завершения из того же столбца, который обновляете. Если вы начинаете без значений строк / столбцов, то нет списка завершения. Курица и яйцо.

0 Ответов