12. februar 2021 - 14:41Der er
1 kommentar og 2 løsninger
Søgefunktion som suppplement til eksisterende TreeView control
Har genbrugt en tidligere database hvori jeg har indbygget en TreeView. Jeg har tidligere været ret så begejstret for denne metode til at navigere rundt i de forskellige data, - men kan godt se nogle begrænsninger når der pludselig er mange 'noder id' at holde styr på.
Jeg har derfor behov for en alternativ/supplerende metode uden at ødelægge hele mit eksisterende setup, - jeg tænker bruger aktiverer en PopUp box hvor der indtastes den 'node id' der ønskes arbejdet med, hvor efter den pågældende række findes når PopUp lukkes igen.
Nogen der har noget tilsvarende / nogen der kan hjælpe ????
Hej Måske kan dette bruges Det virker i min treewiev svar = txtsøg '''.Text
svar = InputBox("hvad", "Navn...") If IsNull(svar) Or svar = "" Then Exit Sub For intindex = 1 To a ''''tree.Nodes.Count If InStr(1, tree.Nodes(intindex).Text, svar) > 0 Then tree.Nodes(intindex).Selected = True
years since I last used the treeview control so needed to brush-up a bit.
Found a simple example which could be of interest.
Add a textbox(txtSearchFor) to the form containing the treeview control, then when you enter text into the field the code finds and highlights those found
Private Sub txtSearchFor_Change()
Dim tv As TreeView Dim nodNode As Node Dim nodFirstFind As Node
'Point to the tree Set tv = Me.tvTreeView.Object
'Search for the text and mark each find If Len(Me.txtSearchFor.Text & "") > 0 Then For Each nodNode In tv.Nodes If InStr(1, nodNode.Text, Me.txtSearchFor.Text, vbTextCompare) > 0 Then nodNode.Expanded = True nodNode.ForeColor = vbGreen If nodFirstFind Is Nothing Then Set nodFirstFind = nodNode End If Else nodNode.Expanded = False nodNode.ForeColor = vbBlack End If Next nodNode Else For Each nodNode In tv.Nodes nodNode.ForeColor = vbBlack Next CollapseNodes tv End If
'Select the first one found, or goto the first node if unsuccessful If Not nodFirstFind Is Nothing Then nodFirstFind.Selected = True nodFirstFind.EnsureVisible Else If Len(Me.txtSearchFor.Text & "") > 0 Then MsgBox "The text you specified can not be found", vbInformation End If GotoFirstNode tv End If
if you send me your email to ekspertenATsanthell.dk then I can send the example dB. Theres a few other functions required to get it to work correctly
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.