2009-07-29 8 views
1

Ok, das ist ein komisches.Sub-Klasse TreeView in WinForms für Maus über Tooltipps

Das erwartete Verhalten für ein TreeView-Steuerelement ist, dass, wenn ShowNodeToolTips auf false festgelegt ist, wenn eine Beschriftung für einen Strukturknoten die Breite des Steuerelements überschreitet (oder genauer, es ist rechte Hand nach der rechten Handrand des Kundenbereichs), dann wird oberhalb des Knotens ein Tooltip angezeigt, der den Text des gesamten Artikels anzeigt.

Ich möchte das deaktivieren, weil die obige Semantik nicht immer funktioniert, je nachdem, was die Baumansicht darin enthält. Also habe ich meine eigenen gerollt und die Tooltips zum Laufen gebracht (und besser als die Standard-Lines!) - aber ich würde gerne in der Lage sein, das Standardverhalten für Situationen zu deaktivieren, in denen es nativ funktionieren würde.

Kann mir also jemand in die richtige Richtung zeigen, welche Nachricht an die TreeView gesendet werden soll, um dieses Verhalten zu deaktivieren? Ich habe mir die Windows-Kontrollreferenz angeschaut, konnte aber nichts finden, was aussah, als wäre es die eine.

Antwort

0

Leider fanden diese das hilft nicht viel ... http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

Als recht schmerzhafte Problem zu umgehen, der einzige Vorschlag, den ich habe, ist, immer den Text gesetzt leer sein alle Tooltips zu unterdrücken, verwenden die TreeNode.Tag-Eigenschaft, um den tatsächlichen Text des Knotens, den Sie anzeigen möchten, zu speichern und diesen selbst zu zeichnen.

1

Versuchen Sie folgendes:

private const int TVS_NOTOOLTIPS = 0x80; 

protected override System.Windows.Forms.CreateParams CreateParams 
{ 
    get 
    { 
     CreateParams p = base.CreateParams; 
     p.Style = p.Style | TVS_NOTOOLTIPS; 
     return p; 
    } 
} 
Verwandte Themen