MSChart柱状图,如何单击某个柱子弹出窗体??

greyrainbow2010 2012-12-21 10:37:30
C# Winform 程序
目前用MSChart显示了一个月中每天的销售情况,柱状图表示的
现在我想实现
在该柱状图上,双击某天的对应的柱子图,然后弹出窗体
这个过程中要求将所单击的柱子图所对应的(时间和销售数据能够获取到)

请教,该如何实现?我没取获得所双击对应的柱子图的任何信息

...全文
316 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wo6522317 2012-12-21
  • 打赏
  • 举报
回复
例子: ======================

 private void chart1_MouseDown(object sender, MouseEventArgs e)
        { 
            // Call Hit Test Method
            HitTestResult result = chart1.HitTest(e.X, e.Y);

            if (result.ChartElementType == ChartElementType.DataPoint)
            {
                
                DataPoint selectedDataPoint = (DataPoint)result.Object;

                MessageBox.Show("X 值:" +selectedDataPoint.XValue + " Y 值: " + selectedDataPoint.YValues[0]);
            }
            else if (result.ChartElementType != ChartElementType.Nothing)
            {
                string elementType = result.ChartElementType.ToString();
                MessageBox.Show(this, "Selected Element is: " + elementType);
            }

        }
==================== 如果X轴是时间的话要做转换:DateTime.FromOADate(selectedDataPoint.XValue)
liangchengfck1 2012-12-21
  • 打赏
  • 举报
回复
我感觉多次一举 楼上说鼠标移动看到数据这个到是有人在用 可是单击弹出对话框 2012-11-11的数据是100KB 难道你的y轴上面没有数据吗 有数据干什么还要这个功能 如果我是用户体验很不舒服
six-years 2012-12-21
  • 打赏
  • 举报
回复
单击柱子弹出窗体有点麻烦 chart控件有这个方面的功能 鼠标划上去时显示提示 你只需要加上下面的话就能看到提示框了 chart1.Series[0].ToolTip = "X轴的值:"+"#VALX"+"\rY轴的值:"+"#VALY";
six-years 2012-12-21
  • 打赏
  • 举报
回复
这个如果要单击弹出的话有点麻烦 chart控件有这个考虑的 鼠标画上去可以显示X轴和Y周的值的 你只需要在Load事件中加一句话 chart1.Series[0].ToolTip = "X轴的值:"+"#VALX"+"\rY轴的值:"+"#VALY"; 然后鼠标划上柱子就可以了
greyrainbow2010 2012-12-21
  • 打赏
  • 举报
回复
引用 7 楼 liangchengfck1 的回复:
这个过程中要求将所单击的柱子图所对应的(时间和销售数据能够获取到)x y xy不是有数据了 想x时间 y数据 图表的作用本身只能显示一些统计信息,我要显示具体详细情况的话,自然有需求了。 自相矛盾 除非你y上没有数据显示
你的理解能力太差了,呵呵。我已经按照4楼的方式实现了我想要的功能,就不跟你废话了。 玩MSChart这里还是有熟练的人的,俺昨天刚开始倒腾,确实很多问题搞的头大,不过这里还是有高人的。
liangchengfck1 2012-12-21
  • 打赏
  • 举报
回复
这个过程中要求将所单击的柱子图所对应的(时间和销售数据能够获取到)x y xy不是有数据了 想x时间 y数据 图表的作用本身只能显示一些统计信息,我要显示具体详细情况的话,自然有需求了。 自相矛盾 除非你y上没有数据显示
greyrainbow2010 2012-12-21
  • 打赏
  • 举报
回复
引用 4 楼 wo6522317 的回复:
例子: ====================== C# code?12345678910111213141516171819 private void chart1_MouseDown(object sender, MouseEventArgs e) { // Call Hit Test Method H……
谢谢,我试试看
greyrainbow2010 2012-12-21
  • 打赏
  • 举报
回复
引用 3 楼 liangchengfck1 的回复:
我感觉多次一举 楼上说鼠标移动看到数据这个到是有人在用 可是单击弹出对话框 2012-11-11的数据是100KB 难道你的y轴上面没有数据吗 有数据干什么还要这个功能 如果我是用户体验很不舒服
你咋知道用户体验不舒服?我要弹出新窗体,当然是因为要显示新的详细信息了。用户就是因为不能弹出新窗体才觉得不爽。 图表的作用本身只能显示一些统计信息,我要显示具体详细情况的话,自然有需求了。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧