Как автозаполнить текстовое поле в 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
Похоже, вы создаете список завершения из того же столбца, который обновляете. Если вы начинаете без значений строк / столбцов, то нет списка завершения. Курица и яйцо.