Khi tôi chọn một nút trong treeview nó làm nổi bật và tôi hiển thị dữ liệu dựa trên nút đó bên dưới. Khi tôi chọn một điều khiển khác (treeview mất tiêu điểm) nó sẽ không còn được đánh dấu. Làm thế nào để tôi giữ nó nổi bật sau khi mất tập trung? Trong khi thực hiện tìm kiếm, tôi không thể biết nút nào được chọn vì tôi phải giữ tiêu điểm trên hộp văn bản (để người dùng có thể nhập thêm văn bản).Điều khiển TreeView trong C#, chọn() và lấy nét
8
A
Trả lời
10
Bạn phải thiết lập thuộc tính HideSelection false - vì vậy bạn sẽ thấy lựa chọn, Mặc dù các điều khiển TreeView mất tập trung
3
Tôi chỉ cần chạy vào vấn đề này và đây là cách tôi giải quyết nó: Thay đổi sở hữu DrawMode để TreeViewDrawMode.OwnerDrawText
và đăng ký DrawNode kiện
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
Nếu màu sắc nổi bật là không đủ sáng theo ý thích của bạn khi HideSelection được thiết lập để False và TreeView mất tập trung:
Hãy chắc chắn rằng T của bạn HideSelection của reeView được đặt thành True (giá trị mặc định).
Sau đó xử lý của TreeView Nhập và Để lại các sự kiện như:
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;
}
Các vấn đề liên quan
- 1. Chọn một điều khiển WPF khi nó được lấy nét
- 2. Bàn phím điều khiển WebBrowser và hành vi lấy nét
- 3. CEdit chọn mọi thứ khi lấy nét
- 4. Truy cập tất cả các nút trong Điều khiển TreeView
- 5. Cách đặt điều khiển lấy nét tiếp theo của Android ActionBar theo chương trình
- 6. Điều khiển bộ chọn thời gian mờ trong C# .NET?
- 7. Lấy văn bản đã chọn từ điều khiển Webbrowser trong .net (C#)
- 8. Extjs cửa sổ phương thức lấy nét lại các điều khiển
- 9. Ẩn điều khiển bật lên khi cửa sổ khác đang lấy nét
- 10. Tạo biểu mẫu không thể lấy nét trong C#
- 11. Cách lấy ô được lấy nét trong JTable trong nhiều lựa chọn
- 12. Lấy nét sau chuột trong wxPython?
- 13. Cách lấy nét đầu vào và bỏ chọn văn bản bên trong nó
- 14. Spinner không lấy nét
- 15. Cách thêm bóng vào TextView khi chọn/lấy nét
- 16. Sử dụng ListBox trong phạm vi lấy nét
- 17. Lấy đầu vào từ cần điều khiển bằng C# .NET
- 18. Trả lời bàn phím khi không lấy nét? (C#, Vista)
- 19. Làm thế nào tôi có thể nhấp chuột phải để chọn một nút trong điều khiển treeview
- 20. Làm cách nào để tạo các hộp kiểm tri-state với điều khiển TreeView trong .NET?
- 21. Lấy đồ thị điều khiển luồng từ mã ANSI C
- 22. Mở hộp thoại tệp và chọn tệp bằng điều khiển WPF và C#
- 23. Cuộn bảng điều khiển trung tâm trong điều khiển C#
- 24. UITextField mất sự kiện lấy nét
- 25. Làm cách nào để lấy (các) điều khiển từ TabPage trong C#?
- 26. DataGrid's CellEditingTemplate và lấy nét ở chế độ chỉnh sửa
- 27. WPF TreeView rò rỉ mục đã chọn
- 28. Nhấp chuột có mang tiêu điểm bàn phím đến các điều khiển có thể lấy nét theo mặc định không?
- 29. Chọn tất cả văn bản bên trong EditText khi văn bản được lấy nét
- 30. Làm cách nào tôi có thể sử dụng tùy chọn độ cao, xoay, lấy nét của SimpleaudioEngine trong cocos2d-x
tôi vật lộn với chính xác cùng một vấn đề 3 ngày trước ... – bernhardrusch
Tôi phải thêm rằng thực sự có 3 lớp TreeView trong C#: WinForms, ASP .NET và WPF. Chỉ điều khiển WinForms mới có thuộc tính HideSelection. – wigy
Điều này khiến tôi tự hỏi tại sao nhà thiết kế Visual Studio gán 'true' làm giá trị mặc định của thuộc tính' HideSelection'. Tôi sẽ nghĩ rằng trong phần lớn các trường hợp sử dụng *** không *** ẩn nút hiện đang được chọn sẽ được ưu tiên. – DavidRR