首页 目录页 热情软件屋 问专家

李海文选

MSChart和DBGrid的两个问题

李海

本文发表在99年7月26日 《计算机世界》28期

问:VB中的MSChart控件的ShowLegend属性怎样才能显示多个汉字的图例?DBGrid控件的点击头事件怎样才能因字段不同而进行不同的控制?

答:1)当ShowLegend属性设置为True后,MSChart控件将显示图例,默认的图例文字是C1C2等。我们可以利用MSChart.Plot.SeriesCollection(x).LegendText来设置图例文字。这里的x表示数据序列的序号,从1开始。这个属性支持中文。你可以在窗体上放置一个MSChart控件,然后输入以下代码:

Private Sub Form_Load()
    Dim arrData(1 To 3, 1 To 3)
    arrData(1, 1) = "一月"   ' 在第一列设置标签。
    arrData(2, 1) = "二月"
    arrData(3, 1) = "三月"
    arrData(1, 2) = 8
    arrData(2, 2) = 4
    arrData(3, 2) = 0.3
    arrData(1, 3) = 0.2
    arrData(2, 3) = 3
    arrData(3, 3) = 6.3
    MSChart1.ChartData = arrData
    MSChart1.Plot.SeriesCollection(1).LegendText = "损耗额(百万)"
    MSChart1.Plot.SeriesCollection(2).LegendText = "利润额(百万)"
End Sub
)"

End Sub

运行结果见图1

图1 MSChart控件显示中文图例文字

1 MSChart控件显示中文图例文字

2)在用户单击一个 DBGrid 控件指定列的标题时,会发生HeadClick事件。该事件的语法为:

Private Sub object_HeadClick ([ index As Integer,] colindex As Integer)

其中colindex参数就是用户点击的列的索引值,利用这个值和Columns属性配合使用就可以知道用户点击的是哪一个字段。下面给出一个例子,在这个例子中,用户点击某个列的标题之后,DBGrid就按那个列进行排序。

首先,在窗体上放置一个Data控件和一个DBGrid控件。

然后,将Data控件的数据库设置为VB目录下的Biblio.mdb,将RecordSource设置为Publishers。将DBGrid控件的DataSource属性设置为Data1

最后,输入以下代码:

Private Sub DBGrid1_HeadClick(ByVal ColIndex As Integer)
    Data1.RecordSource = "Select * From Publishers Order By [" & _
        DBGrid1.Columns(ColIndex).DataField + "]"
    Data1.Refresh
End Sub

这样运行程序就可以看到排序的效果了。

回到《李海文选》目录

如果您有任何建议,请给我发电子邮件:
版权所有 李海,热情软件屋 1997-2006


WU Banner from WebUnion Chinese Network