热情软件屋

 

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


编号:QA000385
建立日期: 1999年1月22日 最后修改日期:2003年7月19日
所属类别:

gia:
    工具:VB5、VB6
    操作系统:win95、win98、winNT
    在使用mschart控件时,如何使鼠标移动到数据标记上时显示相应的内容(如数据大小等)?
    

回答:

    在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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio