MSChart和DBGrid的两个问题
问:VB中的MSChart控件的ShowLegend属性怎样才能显示多个汉字的图例?DBGrid控件的点击头事件怎样才能因字段不同而进行不同的控制?
答:1)当ShowLegend属性设置为True后,MSChart控件将显示图例,默认的图例文字是C1、C2等。我们可以利用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控件显示中文图例文字
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