mnbmbn2 发表于 2014-2-17 10:13:55

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

C# devexpress chartControl柱状图,当点击柱形图中的柱子时 如何触发单击事件,并获取柱子上显示的值!

mnbmbn2 发表于 2014-2-17 10:41:04

有高手指点一下吗。。

mnbmbn2 发表于 2014-2-19 11:27:07

难道就没人知道吗?还是根本就实现不了这个功能

guqiu 发表于 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.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. 保留所有权利。

mnbmbn2 发表于 2014-2-19 15:06:03

guqiu 发表于 2014-2-19 12:24
全部折叠 全部展开语言筛选: 全部 语言筛选: 多个 语言筛选: Visual Basic 语言筛选: C#...

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

guqiu 发表于 2014-2-19 16:06:21

chartControl1_MouseMove 事件 和 单击事件差不多的吧,你试试

mnbmbn2 发表于 2014-2-19 23:10:11

guqiu 发表于 2014-2-19 16:06
chartControl1_MouseMove 事件 和 单击事件差不多的吧,你试试

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

guqiu 发表于 2014-2-20 08:37:25

chartcontrol没有 Click 事件么?

mnbmbn2 发表于 2014-2-20 08:39:44

有 我要点柱子才跳转窗体,解决了 多谢

guqiu 发表于 2014-2-20 08:48:05

不客气{:2_25:}

◕_̯_͡◕ 发表于 2014-7-25 13:56:48

mnbmbn2 发表于 2014-2-20 08:39
有 我要点柱子才跳转窗体,解决了 多谢

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

jj_whb 发表于 2014-7-29 17:40:33

做人不厚道,自己解决了就公布出来

netfireyin 发表于 2014-10-28 21:38:22

解决了发一下啊!我正打算这么弄呢

ZLQQ 发表于 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
页: [1]
查看完整版本: devexpress chartControl,点击柱形图的柱子时,如何触发单击事件