- Set the
TreeView.DrawModetoTreeViewDrawMode.OwnerDrawText:treeView.DrawMode = TreeViewDrawMode.OwnerDrawText; - Set the
Treview.HideSelectiontofalse, so that the node states will be kept as selected:treeView.HideSelection= false; - Add
DrawNodeevent handler to draw the background usingSystemColors.Highlightcolor:private void treeView_DrawNode(object sender, DrawTreeNodeEventArgs e) { if (e.Node == null) return; // if treeview's HideSelection property is "True", // this will always returns "False" on unfocused treeview var selected = (e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected; var unfocused = !e.Node.TreeView.Focused; // we need to do owner drawing only on a selected node // and when the treeview is unfocused, else let the OS do it for us if (selected && unfocused) { var font = e.Node.NodeFont ?? e.Node.TreeView.Font; e.Graphics.FillRectangle(SystemBrushes.Highlight, e.Bounds); TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, SystemColors.HighlightText, TextFormatFlags.GlyphOverhangPadding); } else { e.DrawDefault = true; } }
Chủ Nhật, 26 tháng 7, 2015
TreeNode Selected BackColor while TreeView not focused
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét