Avatar billede brobaek Nybegynder
04. oktober 2002 - 11:02 Der er 6 kommentarer og
1 løsning

Treeview : Vælg node

Jeg har en tree control i en formular. Der har jeg en
sub:
Private Sub treeCompView_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  If Button = vbRightButton And Left(Me.treeCompView.SelectedItem.Key, 1) = "X" Then
      PopupMenu mnuPop1
  End If
End Sub

Dvs. hvis man højre-klikker på en node, hvor key starter med X kommer en popup menu op.

Problemet er, at når formen loades er der ikke markeret en node. Hvis brugeren derfor klikker, og ikke "rammer" en node så kommer der en fejl.

Kan jeg enten som select'e en bestemt node eller på anden måde undgå fejlen?
Avatar billede ocp Nybegynder
04. oktober 2002 - 11:05 #1
on error resume next
'Her står koden der fejler

if err.number <> 0
  exit sub
end if
Avatar billede ocp Nybegynder
04. oktober 2002 - 11:06 #2
Jeg glemte et "then".
Avatar billede ocp Nybegynder
04. oktober 2002 - 11:07 #3
ENDNU bedre:

Private Sub treeCompView_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  on error goto Exit

  If Button = vbRightButton And Left(Me.treeCompView.SelectedItem.Key, 1) = "X" Then
      PopupMenu mnuPop1
  End If
Exit:
End Sub
Avatar billede brobaek Nybegynder
04. oktober 2002 - 12:57 #4
Det er ikke så optimalt at bruge error handleren til forventede funktionaliteter i programmet, så denne løsning kan jeg ikke anvende...
Avatar billede ocp Nybegynder
04. oktober 2002 - 13:09 #5
OK da:

Private Sub treeCompView_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

if not Me.treeCompView.SelectedItem is nothing then
  If Button = vbRightButton And Left(Me.treeCompView.SelectedItem.Key, 1) = "X" Then
      PopupMenu mnuPop1
  End If
end if
End Sub
Avatar billede brobaek Nybegynder
04. oktober 2002 - 13:50 #6
Perfekt - det virker helt efter hensigten...

Tak for hjælpen.

Et lille tillægsspørsmål, bare af nysgerrighed. Hvordan selecter man en node via kode?
Avatar billede ocp Nybegynder
04. oktober 2002 - 13:55 #7
Hmm... er det ikke noget med at sætte selected = true på den node man vil udvælge?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester