| |

VB.NET - FortgeschritteneRe: Phänomen Treeview und Kontextmenü | |  | Autor: Maywood | Datum: 10.12.07 15:36 |
| Ja, das wird wohl vermutlich die einzigste Lösung sein. Aber in der Tat: das Verhalten des TreeViews hat sich wirklich in .Net 2.0 geändert. Warum auch immer. Ist das jetzt überhaupt ein Bug oder ein Feature? Wer weiss, naja, wir werden es wohl nie erfahren..
>> Dann wird aber wieder Treeview_AfterSelect ausgeführt, aber das ist für dieses Fall nicht erwünscht.
Das kannst du auch umgehen, indem du das EventArgs.Action Propery auswertest.
Lange Rede kurzer Sinn, hier mal (m)eine Lösung:
'//
Private Sub TreeView1AfterSelect(ByVal sender As Object, ByVal e As _
TreeViewEventArgs)
If not e.Action = Windows.Forms.TreeViewAction.Unknown Then
debug.WriteLine ("afterselect: " + e.Node.Text)
End If
End Sub
Private Sub TreeView1MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim tnOld as TreeNode = CType(sender, treeview).SelectedNode
Dim tnCurrent As TreeNode = CType(sender, treeview).GetNodeAt (e.X, e.Y)
If not tnCurrent Is Nothing Then
CType(sender, treeview).SelectedNode = tnCurrent
Me.contextMenuStrip1.Tag = tnOld
End If
End If
End Sub
Private Sub ContextMenuStrip1Closed(ByVal sender As Object, ByVal e As _
ToolStripDropDownClosedEventArgs)
If Not Me.contextMenuStrip1.Tag Is Nothing Then
dim tnCurrent as TreeNode = ctype(Me.contextMenuStrip1.Tag, treenode)
dim tnOld as treenode = tnCurrent.TreeView.SelectedNode
tnCurrent.TreeView.SelectedNode = CType(Me.contextMenuStrip1.Tag, treenode)
Me.contextMenuStrip1.Tag = tnOld
End If
End Sub
Private Sub A_ToolStripMenuItemClick(ByVal sender As Object, ByVal e As _
EventArgs)
dim tnOld as TreeNode = ctype(Me.contextMenuStrip1.Tag, treenode)
debug.WriteLine ("rightclick on: " + tnOld.Text)
End Sub
Private Sub B_ToolStripMenuItemClick(ByVal sender As Object, ByVal e As _
EventArgs)
'// ..
End Sub
Private Sub C_ToolStripMenuItemClick(ByVal sender As Object, ByVal e As _
EventArgs)
'// ..
End Sub
'// (ist nicht der beste Code/die beste Lösung, aber es funktioniert einwandfrei. Besser wäre es wohl, eine eigene TreeView-Klasse (incl. ContextMenu) zu erstellen) |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|