mschart控件如何使鼠标移动到数据标记上时显示相应的内容4

来源:百度文库 编辑:神马文学网 时间:2024/05/20 17:17:10
在MouseMove事件中可以得到鼠标的位置,再用TwipsToChartPart方法就可以知道当前位置对应的是Chart的哪个部分。不过,这个方法的使用不太方便。你可以使用下面的代码:
Private Sub MSChart1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim whichPart As Integer, whichSeries As Integer
Dim whichNumber As Integer
MSChart1.TwipsToChartPart X, Y, whichPart, whichSeries, whichNumber, 0, 0
'Debug.Print whichPart, whichSeries, whichNumber
Label1.Caption = X & " " & Y & " " & whichPart & " " & whichSeries & " " & whichNumber
End Sub
你可以在某条曲线上点一下,这时整条曲线被选中,上面的代码输出的whichPart值为VtChPartTypeSeries(5),表示一个序列被选中了,whichSeries表示序列号。如果你在这条选中的曲线的不是节点的某个位置上点一下,这时某个节点被选中,上面的代码输出的whichPart值为VtChPartTypePoint(7),whichNumber表示是序列中的哪个点,你就可以利用这些信息知道用户选择了哪个数据。但是MSChart的这种方式对用户不是很方便。
要在窗体上加一个TextBox控件,设置visible属性为false
另外
mschart1.DoSetCursor = false
Private Sub MSChart1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim whichPart As Integer, whichSeries As Integer
Dim whichNumber As Integer
MSChart1.TwipsToChartPart X, Y, whichPart, whichSeries, whichNumber, 0, 0
MSChart1.AllowSeriesSelection = False
If whichPart <> 7 Or whichSeries <> 1 Then
Text1.Visible = False
Else
Text1.Top = Y + MSChart1.Top + 300
Text1.Left = X + MSChart1.Left + 200
Text1.Text = str(whichPart) & Chr(13) & Chr(10) & str(whichSeries) & Chr(13) & Chr(10) & str(whichNumber)
Text1.Visible = True
End If
End Sub