Страница: 1 |
Страница: 1 |
Вопрос: Автопоиск в таблице
Добавлено: 19.07.07 12:19
Автор вопроса: mandrew
Братцы... помогите! Никак не могу реализовать функцию поиска и позиционирования строки в bindingsource по нажатию клавиш.. а-ля 1С без ввода текста в какой ни будь конирол. Нашел такое вот решение:
Private Sub DataGridView1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
Static KeysPressed As String
Static LastKeyPress As Date
'if more than 2 seconds has passed, clear the string
If DateDiff(DateInterval.Second, LastKeyPress, Now) >= 2 Then
KeysPressed = CStr(e.KeyChar)
Else
KeysPressed += CStr(e.KeyChar)
End If
LastKeyPress = Now
'to see the typed string: Label1.Text = KeysPressed
Dim dg As DataGridView = CType(sender, DataGridView)
Dim DS As DataSet = CType(BindingSource1.DataSource, DataSet)
Dim FieldNameToSearch As String = "StLastName"
BindingSource1.Position = BindingSource1.Find(DS.Tables(0).Columns(FieldNameToSearch).ToString, KeysPressed)
End Sub
но беда в том что FIND в Bindinge ишет только полное соответствие. Как реализовать поиск по части слова?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 19.07.07 23:30
Если бы не Net, то можно было бы занести в массив все искомые строки, и написать собственную функцию Find, в которой InStr по каждому элементу массива. Ну а поскольку это Net, надо искать, после какого бы объекта поставить точку и какой бы элемент использовать в intellisence.
,-)
Номер ответа: 2
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #2
Добавлено: 20.07.07 02:17
попробуй через filter, в фильире можно использовать символы jolly и даже оператор LIKE
Номер ответа: 3
Автор ответа:
mandrew
Вопросов: 1
Ответов: 1
Профиль | | #3
Добавлено: 20.07.07 16:14
нашел решение через создание combobox и его функцию поиска в списке. Если интересно вечером выложу код.