Foxtable(狐表)用户栏目专家坐堂 → mouse up


  共有2676人关注过本帖树形打印复制链接

主题:mouse up

帅哥哟,离线,有人找我吗?
CRM2013
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
mouse up  发帖心情 Post By:2014/8/12 13:59:00 [只看该作者]

用教材中的图表的mouseup代码,但当chart为空白(没有增加图系前),点击时会提示错误,

 

请问如何判断chart为空?

 

Chart.CoordToDataIndex(e.x, e.y ,s ,p)


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/12 14:04:00 [只看该作者]

If Chart.CoordToDataIndex(e.x, e.y ,s ,p) Then '如果鼠标位置存在有效的图序和数据点

 回到顶部
帅哥哟,离线,有人找我吗?
CRM2013
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
  发帖心情 Post By:2014/8/12 14:16:00 [只看该作者]

我用的就是这个代码,但当chart为空白时会报错,还有就是点击第一个图系是可以先生msgbox,如果点击第二个图系则没有任何反应( Chart.SeriesList2)

 

 

 

 

Dim s As Integer '定义存储图系编号的变量
Dim p As Integer '定义存储数据点编号的变量
Dim Chart As WinForm.Chart = Forms("数据分析").Controls("Chart1") '获得Chart对象的引用

If Chart.CoordToDataIndex(e.x, e.y ,s ,p) Then '如果鼠标位置存在有效的图序和数据点
    Dim Series As WinForm.ChartSeries = Chart.SeriesList(s) '获得鼠标位置的图序
    Dim t As Table = Tables("数据索引")
    Dim r As Row = Tables("数据索引").Rows(p+1)
    Dim d As Date = r("Time")
    Dim msg As String
    msg = "单击的是第" & (s+1) & "个图系的第" & (p+1) & "个数据点." & Chr(13) & Chr(10) & "该点的值为: "
    msg = msg & "(X = " & d & ", Y = " & Series.Y(p) & ")"
    Messagebox.Show(msg)
End If


图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/12 14:24:00 [只看该作者]

判断一下

 

Dim s As Integer = 0 '定义存储图系编号的变量
Dim p As Integer = 1 '定义存储数据点编号的变量
Dim Chart As WinForm.Chart = Forms("窗口1").Controls("Chart1") '获得Chart对象的引用

If Chart.SeriesList.Count > 0 Andalso Chart.CoordToDataIndex(e.x, e.y ,s ,p) Then '如果鼠标位置存在有效的图序和数据点

End If


 回到顶部
帅哥哟,离线,有人找我吗?
CRM2013
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
  发帖心情 Post By:2014/8/12 15:44:00 [只看该作者]

谢谢楼上的指点

 

 下图中的红色线是通过 Series = Chart.SeriesList.Add() '增加的,而绿色线是通个 Series = Chart.SeriesList2.Add() '增加另一个图系

结果是mouseup是红线上会有mesbox弹出,但绿色线上没反应。

 

是不是下面这句的原因,需要调整为Chart.SeriesList2(s),我调整了一下,好像也没用。求教有2个Y轴的,如何修改mouseup代码?

 

 Dim Series As WinForm.ChartSeries = Chart.SeriesList(s) '获得鼠标位置的图序

 


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/12 15:46:00 [只看该作者]


 回到顶部