抓取TreeView所选节点的位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抓取TreeView所选节点的位置相关的知识,希望对你有一定的参考价值。
这是一个理论问题,所以没有代码(对不起)。我想在用户选择特定节点时捕获TreeView控件的所选节点的位置(X和Y值)。我浏览了intellisense但没有像“Location”或“Position”这样的标签。怎么做到这一点?实际上我正在尝试在所选节点旁边添加动态按钮和textBox,所以我需要节点的位置。
请帮忙。
答案
我通过使用TreeView.SelectedNode.Bounds.X
(对于X位置)和TreeView.SelectedNode.Bounds.Y
(对于Y位置)并在面板中保留那些动态控件来解决这个问题。
int DistanceFromNode = 250;
MyPanel.SetBounds(MyTreeview.SelectedNode.Bounds.X + DistanceFromNode,
MyTreeview.SelectedNode.Bounds.Y, MyPanel.Width, MyPanel.Height);
欢迎任何其他方法来接近这一点。
另一答案
当用户滚动树视图时,该位置将改变,IMO而不是在所选节点的位置绘制,最好在DrawNode事件中自定义树节点的外观。
在那种情况下,您可以检查是否已选择节点,然后绘制其他按钮,这样您的按钮将与其余的树视图一起滚动。
这是一个例子:
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.drawnode.aspx
另一答案
我试图在TreeView控件的SelectedNode旁边显示一个Dialog。我解决了这个问题如下:
int x = myTreeView.SelectedNode.Bounds.X + myTreeView.SelectedNode.Bounds.Width;
int y = myTreeView.SelectedNode.Bounds.Y + myTreeView.SelectedNode.Bounds.Height;
Point point = new Point(x,y);
Point absPoint = myTreeView.PointToScreen(point);
MyDialog dialog = new MyDialog();
dialog.StartPosition = FormStartPosition.Manual;
dialog.Location = absPoint;
dialog.show()
此代码显示Dialog所选树节点的Right_Bottom侧的位置。
杰夫
以上是关于抓取TreeView所选节点的位置的主要内容,如果未能解决你的问题,请参考以下文章