Laden...

Feststellen, ob ein Treenode oder dessen Pluszeichen angeklickt wurde

Erstellt von DerPapenberg vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.927 Views
D
DerPapenberg Themenstarter:in
116 Beiträge seit 2010
vor 13 Jahren
Feststellen, ob ein Treenode oder dessen Pluszeichen angeklickt wurde

Moin zusammen,

beim anklicken eines Treenodes wie auf dessen Pluszeichen wird das Event NodeMouseClick ausgelöst. Läßt es sich feststellen, ob der Knoten oder das Pluszeichen angeklickt wurde?

Gruß

T
210 Beiträge seit 2006
vor 13 Jahren

Über die EventArgs kannst Du die Klick-Position bekommen. Ich vermute, damit müsstest Du es berechnen können...

Gruß
T-Man

5.299 Beiträge seit 2008
vor 13 Jahren

System.Windows.Forms.TreeView.BeforeExpand(Object, System.Windows.Forms.TreeViewCancelEventArgs)

System.Windows.Forms.TreeView.AfterExpand(Object, System.Windows.Forms.TreeViewEventArgs)

Der frühe Apfel fängt den Wurm.

4.939 Beiträge seit 2008
vor 13 Jahren

Mit der TreeView.HitTest-Methode kann man detailierte Infos über den Klickpunkt erhalten.

D
DerPapenberg Themenstarter:in
116 Beiträge seit 2010
vor 13 Jahren

Hallo zusammen,

danke für eure Antworten. Ich kann mit euern Vorschlägen nur den betreffenden Knoten ermitteln, aber leider nicht, ob der Knoten oder das Pluszeichen angeklickt wurde. Schade, dass das so einfach nicht geht

Gruß

5.299 Beiträge seit 2008
vor 13 Jahren

wenns überhaupt geklickst wurde, und es ereignet sich beforeExpand oder beforeCollapse, dann wird wohl aufs + geklickst worden sein.
Ansonsten kannste auch Treenode.Bounds checken, und anhand der relativen Position des Klicks abschätzen, ob da wohl das + ist.

Der frühe Apfel fängt den Wurm.

4.939 Beiträge seit 2008
vor 13 Jahren

Hast du dir denn mal die HitTest-Methode genauer angeschaut, insbesondere die Eigenschaft 'Location' vom Rückgabewert 'TreeViewHitTestInfo'?

Hier ein Auszug aus der Hilfe:

public enum TreeViewHitTestLocations

  
 Member name        Description   
 None               A position in the client area of the TreeView control,  
                    but not on a node or a portion of a node.   
 Image              A position within the bounds of an image contained on  
                    a TreeView or TreeNode.   
 Label              A position on the text portion of a TreeNode.   
 Indent             A position in the indentation area for a TreeNode.   
 AboveClientArea    A position above the client portion of a TreeView control.   
 BelowClientArea    A position below the client portion of a TreeView control.   
 LeftOfClientArea   A position to the left of the client area of a TreeView control.   
 RightOfClientArea  A position to the right of the client area of the TreeView control.   
 RightOfLabel       A position to the right of the text area of a TreeNode.   
 StateImage         A position within the bounds of a state image for a TreeNode.   
 PlusMinus          A position on the plus/minus area of a TreeNode.  
  

Informativer geht es wohl nicht -)

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo DerPapenberg,

bitte behalte das vom User gewohnte Verhalten eines TreeViews im Hinterkopf, wenn du auf Klicks auf das Pluszeichen bzw. auf den Knoten unterschiedlich reagierst, um den User nicht durch seltsam anmutendes Verhalten zu verwirren.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

D
DerPapenberg Themenstarter:in
116 Beiträge seit 2010
vor 13 Jahren

Guten Morgen zusammen,

sorry für die späte Antwort. Hatte ein paar Tage "Auszeit" 🙂

@m0rius

Das Pluszeichen soll nur zum durchsuchen des Baumes dienen. Quasi wie beim Windowsexplorer

@Th69
"PlusMinus" hört sich wohl nach meiner Lösung an. Muß ich mir gleich noch mal genauer anschauen

Gruß