Po wybraniu węzła w widoku drzewa podświetla się i wyświetla dane na podstawie tego węzła poniżej. Po wybraniu innej kontrolki (widok drzewa traci ostrość) nie jest już podświetlany. Jak mogę go podświetlić po utracie ostrości? Podczas wyszukiwania nie mogę powiedzieć, który węzeł jest wybrany, ponieważ muszę skupić się na polu tekstowym (aby użytkownik mógł wpisać więcej tekstu).Sterowanie TreeView w C#, zaznaczenie() i skupienie
8
A
Odpowiedz
10
Musisz ustawić właściwość HideSelection false - więc widać wybór, altough kontroli TreeView stracił ostrości
3
Właśnie napotkasz ten problem i jest to jak ja skierowana go: Zmieniono właściwość trybRysowania do TreeViewDrawMode.OwnerDrawText
i zarejestrowany DrawNode imprezy
private void MyTreeGridview_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
if ((e.State == TreeNodeStates.Selected) && (!MyTreeGridview.Focused))
{
Font font = e.Node.NodeFont ?? e.Node.TreeView.Font;
Color fore = e.Node.ForeColor;
if (fore == Color.Empty)fore = e.Node.TreeView.ForeColor;
fore = SystemColors.HighlightText;
Color highlightColor = SystemColors.Highlight;
e.Graphics.FillRectangle(new SolidBrush(highlightColor), e.Bounds);
ControlPaint.DrawFocusRectangle(e.Graphics, e.Bounds, fore, highlightColor);
TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, fore, highlightColor, TextFormatFlags.GlyphOverhangPadding);
}
else
{
e.DrawDefault = true;
}
}
0
Jeśli kolor podświetlenia nie jest wystarczająco jasny do własnych upodobań, kiedy HideSelection jest ustawiona na False i TreeView stracił ostrości:
upewnić się, że T Funkcja ukrywania selekcji reeView ma wartość True (wartość domyślna).
Następnie uchwyt TreeView na wejście i wyjście wydarzeń, takich jak:
void myTreeView_Leave(object sender, EventArgs e)
{
if((sender as TreeView).SelectedNode != null)
(sender as System.Windows.Forms.TreeView).SelectedNode.BackColor = Color.Red; //your highlight color
}
void myTreeView_Enter(object sender, EventArgs e)
{
if((sender as TreeView).SelectedNode != null)
(sender as TreeView).SelectedNode.BackColor = (sender as TreeView).BackColor;
}
Powiązane problemy
- 1. C# Intricate Treeview Design
- 2. Skupienie elementu w Aurelia
- 3. Sterowanie pionową zakładką C#
- 4. Sterowanie VLC przez C#
- 5. Kolor podświetlenia węzła TreeView w C#
- 6. Sterowanie Sexy WinForm dla C#
- 7. Sterowanie urządzeniem z kamery C#
- 8. Jak ustalić, gdzie nastąpiło skupienie?
- 9. dodaj zdjęcie w treeView
- 10. Zrozumienie AttachThreadInput - odłączanie stracić skupienie
- 11. C#: Rysunek właściciela TreeView z właścicielemdrawtext i dziwne czarne podświetlanie po kliknięciu na węźle
- 12. System plików TreeView
- 13. Wielokrotny wybór w TreeView
- 14. Jak wymusić zaznaczenie i tekst w tej samej linii?
- 15. TreeView Virtualization
- 16. Jak wyświetlić katalogi w TreeView?
- 17. Sterowanie WinForm przeciągnij i upuść
- 18. Sterowanie zakotwiczeniem i dokowaniem w java Swing
- 19. Usuń SelectedItem z TreeView
- 20. Identyfikacja duplikatów i zaznaczenie pierwszego wystąpienia i wszystkich innych
- 21. C - sterowanie osiąga koniec funkcji non void
- 22. Zastępowanie podświetlone zaznaczenie w UIPickerView
- 23. C# treeview ignoruj podwójne kliknięcie tylko w polu wyboru
- 24. Programowo usunąć zaznaczenie w UIWebView
- 25. Wirtualizacja drzewa WPF TreeView
- 26. Sterowanie lampkami LED klawiatury za pomocą c
- 27. Jak wyczyścić zaznaczenie wiersza gridview?
- 28. wp7 poziomy przesunięcia zaznaczenie
- 29. Rozwiń cały TreeView w Silverlight
- 30. Edytuj element w JavaFX TreeView
Walczyłem z dokładną tego samego problemu 3 dni przed ... – bernhardrusch
Muszę dodać, że nie są w rzeczywistości 3 klasy TreeView w C#: WinForms, ASP .NET i WPF. Tylko formant WinForms ma właściwość HideSelection. – wigy
Zastanawiam się, dlaczego projektant Visual Studio przypisuje "true" jako domyślną wartość właściwości 'HideSelection'. Myślę, że w większości przypadków użycia *** nie byłoby *** ukrywanie wybranego aktualnie węzła. – DavidRR