TreeView控件中拖拽事件与鼠标事件的坐标问题(MouseEventArgs 和 DragEventArgs 坐标问题)
来源:互联网 发布:行情软件哪个好 编辑:程序博客网 时间:2024/05/17 05:15
最近在使用TreeView控件,对拖拽事件和鼠标事件中的坐标问题产生了一些困惑。
使用TreeView控件与拖拽相关的事件的时候,通过下列代码获得相关的节点
private void FoldertreeView_DragOver(object sender, DragEventArgs e)
{
Point point = FoldertreeView.PointToClient(new Point (e.X,e.Y ));
FoldertreeView.SelectedNode = FoldertreeView.GetNodeAt(point);
}
然后在使用TreeView鼠标相关的事件的时候,也想使用上面的方法获得对应的节点。
private void FoldertreeView_MouseClick(object sender, MouseEventArgs e)
{
Point point = FoldertreeView.PointToClient(new Point (e.X,e.Y ));
FoldertreeView.SelectedNode = FoldertreeView.GetNodeAt(point);
}
但是发现无法获取相应的节点。仔细查阅资料发现。原来是两者所参照的坐标系不一样:
MouseEventArgs获得的坐标是相对于引发事件的控件的坐标。DragEventArgs 获得的坐标是相对于窗体原点或屏幕远点的坐标。TreeView.GetNodeAt() 使用的坐标是相对于TreeView的控件的坐标。
所以对于
TreeView鼠标相关的事件,不需要进行坐标转化。
private void FoldertreeView_MouseClick(object sender, MouseEventArgs e) { TreeNode dsTreeNode = FoldertreeView.GetNodeAt(new Point(e.X, e.Y)); }
- TreeView控件中拖拽事件与鼠标事件的坐标问题(MouseEventArgs 和 DragEventArgs 坐标问题)
- Javascript事件与鼠标坐标的属性
- 获取事件目标对象的位置坐标或者鼠标位置坐标(兼容IE和火狐)
- js 鼠标事件 鼠标坐标
- 鼠标事件获取鼠标坐标
- 鼠标点击事件按钮和触电坐标
- C#计时器;控件移动;获取鼠标坐标;事件调用事件;
- TreeView控件AfterSelect、NodeMouseClick事件的问题
- 将鼠标事件的设备坐标转换到世界坐标
- 鼠标事件中event对象的坐标
- cvSetMouseCallback()鼠标坐标、事件返回
- AS3中鼠标坐标与鼠标事件总结
- 鼠标坐标问题
- 关于鼠标坐标问题
- js获取控件的坐标 和鼠标坐标
- MFC中鼠标坐标和空间坐标有偏差的问题
- QT:如何获取鼠标坐标点和键盘响应事件
- Flex控件坐标问题
- android中加入广告篇一
- 第3章 对象基础
- android中加入广告篇二
- 从上传一个文件说起
- Android动态加载(下)——加载已安装APK中的类和资源
- TreeView控件中拖拽事件与鼠标事件的坐标问题(MouseEventArgs 和 DragEventArgs 坐标问题)
- ListView下拉刷新数据功能篇一
- hdu 1196 Lowest Bit
- GO 语言 读写文件
- 小试DirectX游戏CPU优化
- uva 10404 - Bachet's Game
- 网络下载器
- 无法显示进程。没有正确安装调试器。请运行安装程序安装或修复调试器。
- Spring Batch任务的异步执行