1、如何实现鼠标移动某个图例时,动态实时显示此图例的内容,我现在使用的messagebox.show,每次移动都要“确认”一下,太麻烦了
2、不要显示是第几个图系,而是显示这个图系的名称,例:9号场地,1785620
3、图和图例所在位置的颜色可以修改
4、右侧图例可以多显示几行,不要分成2列
此主题相关图片如下:搜狗截图20221212090741.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2022-12/202212129112191703.png)
代码:
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("统计表4") '定义一个变量t引用数据表--------------
Dim sm As Integer = t.Compute("Sum(净重)") '计算总数量
Chart = Forms("窗口2").Controls("Chart1") ' 引用窗口中的图表--------------
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t.Rows
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = 1 '一个系列只能包括一个值
' Series.Text = r("发货单位") & "(" & r("净重") & ")" '设置图系的标题
Series.Text = r("发货单位") '设置图系的标题
Series.Y(0) = r("净重") '指定值
Series.DataLabelText = Math.Round(r("净重") * 100 / sm, 2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass = CompassEnum.East '图列显示在东方(右方)
事件MouseMove:
Dim s As Integer '定义存储图系编号的变量
Dim p As Integer '定义存储数据点编号的变量
Dim Chart As WinForm.Chart = Forms("窗口2").Controls("Chart1") '获得Chart对象的引用------------
If Chart.CoordToDataIndex(e.x, e.y , s , p) Then '如果鼠标位置存在有效的图序和数据点
Dim Series As WinForm.ChartSeries = Chart.SeriesList(s) '获得鼠标位置的图序
Dim msg As String
msg = "单击的是第" & (s + 1) & "个图系,该点的值为 " & Series.Y(p)
Messagebox.Show(msg, "提示")
End If