找回密码
 立即注册

QQ登录

只需一步,快速开始

安心海叶

中级会员

66

主题

255

帖子

717

积分

中级会员

积分
717

活字格认证微信认证勋章

安心海叶
中级会员   /  发表于:2015-12-15 15:37  /   查看:9061  /  回复:14
您好!

请问在Chart里面添加可拖动的线,如何让鼠标只有在线的附近点击时,才能LeftMouseButtonDrag?

现在默认的是只有在右侧,并且右侧离线很远时,线也可以动。

14 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-12-15 16:04:00
沙发
回复 1楼安心海叶的帖子

谢谢您的反馈。
您可以在鼠标相关事情,比如MouseLeftButtonDown事件里,拿到当前的点,然后在MouseMove里判断和可移动的线之间的距离,选择您认为合适移动的距离。
基本思路
1.调用事件。
  1. void ds_PlotElementLoaded(object sender, EventArgs e)
  2. {
  3.     var pe = (PlotElement)sender;
  4.     pe.MouseLeftButtonDown += new MouseButtonEventHandler(pe_MouseLeftButtonDown);
  5.     pe.MouseLeftButtonUp += new MouseButtonEventHandler(pe_MouseLeftButtonUp);
  6. }
复制代码

2.鼠标左键拿到PlotElement
  1. PlotElement currentPE;
  2. void pe_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  3. {
  4.     //Capture plot element clicked on
  5.     currentPE = (PlotElement)sender;
  6. }

  7. void pe_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
  8. {
  9.     //Clear selected plot element
  10.     currentPE = null;
  11. }
复制代码

3.移动的时候判断:
  1. void c1Chart1_MouseMove(object sender, MouseEventArgs e)
  2. {
  3.     //判断满足您的条件的时候拖拽
  4.   }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-12-16 13:06:00
板凳
回复 2楼Alice的帖子

不太理解您的含义,ds_PlotElementLoaded是?
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-12-16 13:12:00
地板
回复 2楼Alice的帖子

现在想要封装一个类,工程所有ChartPanelObject都具有这些特征
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-16 14:01:00
5#
回复 4楼安心海叶的帖子

那是DataSeries下的事件PlotElementLoaded。
我的意思是,2楼的代码想要说明您可以自己去判断拖拽的合适位置以及时机。
鼠标的操作需要在鼠标相关事件里完成,ChartPanelObject只是一个容器,如果您需要自定义的话,还是需要在鼠标相关的事件里写代码去完成。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-12-16 15:22:00
6#
控件默认添加的线,如果Action为LeftMouseButtonDrag,只能向线的右侧拖拽,而不能向线的左侧拖拽?

我们只有在Chart中添加线,请问如何在鼠标事件里完成?

我们要实现的功能是:对于添加的线,可以在点击线时,实现左右拖拽功能。

以下是一个Demo,请问如何实现?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-16 15:47:00
7#
回复 6楼安心海叶的帖子

请将您的demo发过来,我帮您看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-12-18 15:24:00
8#
回复 7楼Alice的帖子

请问demo收到了吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-18 16:19:00
9#
回复 8楼安心海叶的帖子

抱歉,收到了,测试后给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2015-12-18 16:48:00
10#
回复 9楼Alice的帖子

好的,谢谢~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部