Ich verwende diese TreeViewMS
Implementierung, so dass die Benutzer Multiselection-Funktion haben können, aber ich habe festgestellt, dass etwas nicht richtig funktioniert heute. Wenn ich die Eigenschaft TreeNode.ForeColor
auf Color.Red
setze und den Fokus auf diesen Knoten lege, wird seine Farbe bald wieder auf die Standardfarbe (Schwarz) zurückgesetzt, wenn ich die Maus aus diesem Knoten herausgehe. Wie kann ich das umgehen? Ich habe nach einem Ereignis gesucht, um die TreeNode.ForeColor
bald auf meine benutzerdefinierte zu setzen, da der Knoten den Fokus verloren hat, wenn dieser Knoten den Anforderungen entspricht, seine Farbe zu ändern. Gibt es so ein Ereignis?Benutzerdefinierte Node.ForeColor wird zurückgesetzt, wenn Fokus verloren
1
A
Antwort
1
Das Problem ist in TreeViewMS
Klasse. Schauen Sie sich removePaintFromNodes
Methode:
protected void removePaintFromNodes()
{
if (m_coll.Count==0) return;
TreeNode n0 = (TreeNode) m_coll[0];
Color back = n0.TreeView.BackColor;
Color fore = n0.TreeView.ForeColor;
foreach (TreeNode n in m_coll)
{
n.BackColor = back;
n.ForeColor = fore;
}
}
Diese Methode setzt die Hintergrundfarbe und die forecolor zur Baum-Ansicht Standard.
Wenn Sie diese Methode entfernen, behält sie die Vordergrundfarbe des Knotens bei, wenn Sie auf einen anderen Knoten klicken, aber wenn der Knoten ausgewählt ist, wird die Standardfarbe für den ausgewählten Knoten verwendet.
Um das zu beheben, können Sie den Knotentext selbst zeichnen, indem Sie diese:
treeViewMS1.DrawMode = TreeViewDrawMode.OwnerDrawText;
treeViewMS1.DrawNode += TreeViewMS1_DrawNode;
Und dieses:
private void TreeViewMS1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.NodeFont, e.Bounds, e.Node.ForeColor, TextFormatFlags.GlyphOverhangPadding);
}
Verwandte Themen
- 1. Wie wird ein Fokus auf ein Textfeld zurückgesetzt, wenn der Fokus auf einem HTML-Formular verloren geht?
- 2. ausblenden ul wenn Fokus verloren in JQuery
- 3. Angular Textfeld Fokus verloren Ereignis
- 4. wpf listview verloren den Fokus
- 5. CSS-Animation auf Fokus zurückgesetzt
- 6. EditText in ListView verloren Fokus
- 7. Nginx Verbindung zurückgesetzt, Antwort von uWsgi verloren
- 8. Response.Cookies wird zurückgesetzt, wenn RedirectToAction aufgerufen wird
- 9. ComboBoxCellEditor nur Einstellungswert auf Fokus verloren
- 10. Accelerator-Befehle funktionieren nicht, wenn der Fokus verloren
- 11. Change WPF treeViewItem Hintergrundfarbe, wenn ausgewählt, aber Fokus verloren
- 12. Übergeordnete Aktivität wird zurückgesetzt, wenn von Kind zurück navigiert wird
- 13. C# erkennen Anwendung konzentriert verloren Fokus
- 14. QDateTimeEdit - Stunden/Minuten Abschnitte setzt zu leeren, wenn der Fokus verloren
- 15. Fokus verloren auf der Aktualisierung in Recyclerview
- 16. openquery apears wird zurückgesetzt, wenn fertig
- 17. MKMapView wird zurückgesetzt, wenn die Standortaktualisierung
- 18. Timer nicht zurückgesetzt wird, wenn „Spiel“ startet
- 19. Sonderzeichencodierung verloren geht, wenn String übergeben wird
- 20. Update-String-Format von TextBox auf den Fokus verloren
- 21. Wie wird JavaScript-Code ausgeführt, wenn ein Formular zurückgesetzt wird?
- 22. Wird eine Löschanweisung auf Redshift zurückgesetzt, wenn sie abgebrochen wird
- 23. Datumsauswahl wird nicht zurückgesetzt?
- 24. RuntimeException wird nicht zurückgesetzt
- 25. ModelAdmin-Filter wird zurückgesetzt
- 26. Formular wird Fokus, wenn ich VBA-Editor
- 27. Angular Materialauswahl wird zurückgesetzt
- 28. Effizienzzähler wird nicht zurückgesetzt
- 29. Knotenvariable wird zurückgesetzt
- 30. Erkenne Fokus verloren von einer Gruppe von WPF-Steuerelementen
Ist HideSelection wahr? – TaW