在使用mschart控件时,如何使鼠标移动到数据标记上时显示相应的内容
编号:QA000385
建立日期: 1999年1月22日 最后修改日期:2003年7月19日
所属类别:
Q
gia:
工具:VB5、VB6
操作系统:win95、win98、winNT
在使用mschart控件时,如何使鼠标移动到数据标记上时显示相应的内容(如数据大小等)?
A回答:
在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
End Sub
你可以在某条曲线上点一下,这时整条曲线被选中,上面的代码输出的whichPart值为VtChPartTypeSeries(5),表示一个序列被选中了,whichSeries表示序列号。如果你在这条选中的曲线的不是节点的某个位置上点一下,这时某个节点被选中,上面的代码输出的whichPart值为VtChPartTypePoint(7),whichNumber表示是序列中的哪个点,你就可以利用这些信息知道用户选择了哪个数据。但是MSChart的这种方式对用户不是很方便。
Simon Kang的意见:
要在窗体上加一个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
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 图形、图象, picture, graph, image, draw。
| |
|
|
| |
|
|