开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 12270|回复: 13

devexpress chartControl,点击柱形图的柱子时,如何触发单击事件

[复制链接]

0

精华

0

贡献

0

赞扬

帖子
10
软币
81
在线时间
6 小时
注册时间
2014-2-17
发表于 2014-2-17 10:13:55 | 显示全部楼层 |阅读模式
C# devexpress chartControl柱状图,当点击柱形图中的柱子时 如何触发单击事件,并获取柱子上显示的值!
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
10
软币
81
在线时间
6 小时
注册时间
2014-2-17
 楼主| 发表于 2014-2-17 10:41:04 | 显示全部楼层
有高手指点一下吗。。
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
10
软币
81
在线时间
6 小时
注册时间
2014-2-17
 楼主| 发表于 2014-2-19 11:27:07 | 显示全部楼层
难道就没人知道吗?还是根本就实现不了这个功能
回复

使用道具 举报

0

精华

78

贡献

55

赞扬

帖子
166
软币
5528
在线时间
819 小时
注册时间
2013-7-11
发表于 2014-2-19 12:24:47 | 显示全部楼层
本帖最后由 guqiu 于 2014-2-19 12:26 编辑

           全部折叠 全部展开  语言筛选: 全部 语言筛选: 多个 语言筛选: Visual Basic 语言筛选: C# 语言筛选: JScript  
Visual Basic
C#
JScript
XtraCharts  
如何: 确定哪个系列点位于测试点下面  
参阅  



XtraCharts > 示例 > 如何: 确定哪个系列点位于测试点下面

Show Me  
在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E2717。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。


这个示例展示了如何接管 ChartControl.MouseMove 事件,从而确定哪个 系列点 位于测试点下面,并且使用 ToolTipController 在工具提示中显示它的参数和取值信息。

要在运行时刻启用点击测试,以便于让本示例正确工作,则把 ChartControl.RuntimeHitTesting 属性设置为 true。


C# 复制代码
(Form1.cs)
using System;
using System.Windows.Forms;
using DevExpress.XtraCharts;
// ...

private void chartControl1_MouseMove(object sender, MouseEventArgs e) {
    // Obtain hit information under the test point.
    ChartHitInfo hi = chartControl1.CalcHitInfo(e.X, e.Y);

    // Obtain the series point under the test point.
    SeriesPoint point = hi.SeriesPoint;

    // Check whether the series point was clicked or not.
    if (point != null) {
        // Obtain the series point argument.
        string argument = "Argument: " + point.Argument.ToString();

        // Obtain series point values.
        string values = "Value(s): " + point.Values[0].ToString();
        if (point.Values.Length > 1) {
            for (int i = 1; i < point.Values.Length; i++) {
                values = values + ", " + point.Values.ToString();
            }
        }

        // Show the tooltip.
        toolTipController1.ShowHint(argument + "\n" + values, "SeriesPoint Data");
    }
    else {
        // Hide the tooltip.
        toolTipController1.HideHint();
    }
}


不能使用 ChartControl.HitTest 方法来实现此目的,因为此方法返回鼠标单击的 ChartElement (图表元素)。 SeriesPoint (系列点) 对象不是图表元素,而 Series、XYDiagram 和 ChartControl 对象都是图表元素。

在下面的插图中显示了结果。


参阅
ChartControl.CalcHitInfo
ChartHitInfo.HitTest
HotTrackEventArgs.HitInfo
如何: 只为热跟踪点显示系列标签
就此主题发送反馈意见。
Copyright (c) 1998-2011 Developer Express Inc. 保留所有权利。
未命名.JPG
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
10
软币
81
在线时间
6 小时
注册时间
2014-2-17
 楼主| 发表于 2014-2-19 15:06:03 | 显示全部楼层
guqiu 发表于 2014-2-19 12:24
全部折叠 全部展开  语言筛选: 全部 语言筛选: 多个 语言筛选: Visual Basic 语言筛选: C#  ...

我想通过鼠标单击柱子 然后弹出一个Form,不知道可以实现不。
回复

使用道具 举报

0

精华

78

贡献

55

赞扬

帖子
166
软币
5528
在线时间
819 小时
注册时间
2013-7-11
发表于 2014-2-19 16:06:21 | 显示全部楼层
chartControl1_MouseMove 事件 和 单击事件差不多的吧,你试试
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
10
软币
81
在线时间
6 小时
注册时间
2014-2-17
 楼主| 发表于 2014-2-19 23:10:11 | 显示全部楼层
guqiu 发表于 2014-2-19 16:06
chartControl1_MouseMove 事件 和 单击事件差不多的吧,你试试

chartControl1_MouseMove 是可以。但感觉一移动到柱子上就弹出一个窗体,不是很合理。
回复

使用道具 举报

0

精华

78

贡献

55

赞扬

帖子
166
软币
5528
在线时间
819 小时
注册时间
2013-7-11
发表于 2014-2-20 08:37:25 | 显示全部楼层
chartcontrol没有 Click 事件么?
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
10
软币
81
在线时间
6 小时
注册时间
2014-2-17
 楼主| 发表于 2014-2-20 08:39:44 | 显示全部楼层
有 我要点柱子才跳转窗体,解决了 多谢
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
8
软币
114
在线时间
7 小时
注册时间
2013-11-2
发表于 2014-7-25 13:56:48 | 显示全部楼层
mnbmbn2 发表于 2014-2-20 08:39
有 我要点柱子才跳转窗体,解决了 多谢

怎么解决的说下吧 刚好遇到了
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
8
软币
104
在线时间
4 小时
注册时间
2014-7-19
发表于 2014-7-29 17:40:33 | 显示全部楼层
做人不厚道,自己解决了就公布出来
回复

使用道具 举报

0

精华

2

贡献

96

赞扬

帖子
40
软币
362
在线时间
24 小时
注册时间
2013-11-21
发表于 2014-10-28 21:38:22 | 显示全部楼层
解决了发一下啊!我正打算这么弄呢
回复

使用道具 举报

0

精华

0

贡献

2

赞扬

帖子
18
软币
209
在线时间
21 小时
注册时间
2014-10-24
发表于 2014-10-30 10:52:50 | 显示全部楼层
本帖最后由 ZLQQ 于 2014-10-30 10:54 编辑
guqiu 发表于 2014-2-19 12:24
全部折叠 全部展开  语言筛选: 全部 语言筛选: 多个 语言筛选: Visual Basic 语言筛选: C#  ...

就这里面的代码用到MouseClick也可以啊 只要判断point不等于null 就是选中了 另外设置RunTimeSelection为True
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 01:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表