Kein NodeClick event!

25/06/2014 - 13:43 von Spanker Leach | Report spam
Hallo zusammen,

auf einem Form ist ein Treeview (ComCtl32, nicht VB6).
Sobald ich einen Node anklicke, wird das NodeClick event ausgelöst.
Ganz so wie zu erwarten.

Verschiebe ich das Form jedoch auf einen anderen Monitor funktioniert das nicht mehr.
Das event findet schlicht nicht statt.

Einfach nachzuvollziehen:

Private Sub Form_Load()
TreeView.Nodes.Add , , "bla", "Test node"
End Sub

Private Sub TreeView_NodeClick(ByVal Node As ComctlLib.Node)
MsgBox "klick"
End Sub

Weiss dazu jemand Abhilfe?


Viele Grüsse,
Karl
 

Lesen sie die antworten

#1 Spanker Leach
25/06/2014 - 14:33 | Warnen spam
Naja, mir ist selbst was eingefallen.

Im MouseDown prüfe ich, auf welchen Node ich geklickt habe.
Sobald ich den habe kann ich NodeClick auslösen.
Klappt.

Blöd ist im Moment noch, dass NodeClick 2x aufgerufen wird falls das NodeClick event doch kommt, das kriege ich aber wohl hin.

Übrigens, das NodeClick event fehlt nur wenn die Bildschirmkoordinaten negativ sind.
Aber es fehlt dann wirklich.


Viele Grüsse,
Karl



Private Sub tv_Settings_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)

Dim TheNode As ComctlLib.Node
Dim P As POINTAPI
'--

GetCursorPos P
ScreenToClient tv_Settings.hWnd, P

Set TheNode = tv_Settings.HitTest(P.X * Screen.TwipsPerPixelX, P.Y * Screen.TwipsPerPixelY)

If Not TheNode Is Nothing Then
tv_Settings_NodeClick TheNode
End If

End Sub

Ähnliche fragen