TreeView 中的 HotTracking 不适用于拖放
我有一个简单的 TreeView,其 HotTracking 属性设置为 True。当我将鼠标移到某个项目上时它会起作用。但当我使用拖放并将某些内容拖到 TreeView 项上时,它不起作用。有没有办法将 HotTracking 与 DragDrop 结合使用?或者有什么解决方法吗?
I have a simple TreeView with HotTracking Property set to True. It works when I move the mouse over an item. But it doesn't work when I use Drag&Drop and Drag something over a TreeView Item. Is there a way to use the HotTracking with DragDrop? Or any workarounds?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据设计,该控件仅获取 D+D 通知,而不获取鼠标消息。您可以简单地自己选择节点:
您通常需要做更多工作才能让用户滚动视图并展开节点。
By design, the control only gets D+D notifications, no mouse messages. You could simply select the node yourself:
You typically need to do more work to let the user scroll the view and expand nodes.
按照 @Hans 建议选择节点是一个简单的解决方案,但如果节点选择上存在一些事件,或者您只需要保留选定的节点,则可能无法使用。
我发现的唯一方法是使用 VisualStylesRenderer custumDraw 节点。
这篇文章对主题绘制有很大帮助:
VisualStyleRenderer 和主题 (WinForms)
Selecting a Node as @Hans suggested is a simple solution but can be unusable if there is some events on node selection, or if you just need keeping the selected node.
The only way I found is custumDraw the node using VisualStylesRenderer.
this post helps a lot with theme drawing:
VisualStyleRenderer and themes (WinForms)