【TeeChart Pro ActiveX教程】(三):图表分页
如果图表的数据源包含的数据多于可以在一个图表屏幕上清晰显示的数据,您可能希望将图表划分为可以翻阅的页面。这可以通过TeeChart编辑器或以编程方式实现。
使用图表编辑器进行分页
可以使用TeeChart Editor定义页面大小。仍然需要将分页按钮或ChartPageNavigator组件添加到项目中,或者您可以在运行时使TeeChart Editor可用,以允许用户使用编辑器更改页面。 在设计时,在TeeChart Editor中选择Paging页面。
在“Points per Page”框中,键入(或滚动到)您希望在“Chart”页面上看到的系列点数。如果您正在为系列编码数据值,则在运行项目,填充系列并在运行时显示图表编辑器之前,导航按钮不会突出显示。如果连接到ADO.NET数据源,您应该看到分页在设计时立即生效。
运行: 要在运行时通过图表编辑器访问分页属性,请使用ShowEditor。
[C#.Net]
tChart1.ShowEditor();
[VB.Net]
TChart1.ShowEditor()
按代码分页
可以通过Page类获取分页属性和方法。 向您的图表添加分页所需的步骤:
每页定义点数
使用MaxPointsPerPage定义要在每个页面上显示的点数:
[C#.Net]
tChart1.Page.MaxPointsPerPage = 10;
[VB.Net]
TChart1.Page.MaxPointsPerPage = 10
将导航按钮添加到图表的表单
示例:第一页
[C#.Net]
tChart1.Page.Current = 0;
[VB.Net]
TChart1.Page.Current = 0
推进一个页面
[C#.Net]
tChart1.Page.Next();
[VB.Net]
TChart1.Page.Next()
转到上一页
[C#.Net]
tChart1.Page.Previous();
[VB.Net]
TChart1.Page.Previous()
最后一页
[C#.Net]
tChart1.Page.Current = tChart1.Page.Count;
[VB.Net]
With TChart1 .Page.Current = .Page.Count End With
决定如何处理最后一页
最后一页不太可能具有与其他图表页面中的点数量匹配的正确点数。您可以选择缩放最后页面,其中“最适合”剩余点到页面,相应地调整轴刻度,或者您可以将页面视为具有相同点数的先前页面,这可能使最后一页相当为空如果页面的分数不多。
[C#.Net]
tChart1.Page.ScaleLastPage = false; (default = true)
[VB.Net]
TChart1.Page.ScaleLastPage = False (default = True)
向用户显示页码
PageNumber图表工具可用于实现此目的:
[C#.Net]
private void Form1_Load(object sender, System.EventArgs e) { Bar bar1 = new Bar(); PageNumber pageNumber1 = new PageNumber(); tChart1.Series.Add(bar1); tChart1.Tools.Add(pageNumber1); bar1.FillSampleValues(100); tChart1.Page.MaxPointsPerPage = 10; } private void button1_Click(object sender, System.EventArgs e) { tChart1.Page.Previous(); } private void button2_Click(object sender, System.EventArgs e) { tChart1.Page.Next(); }
[VB.Net]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Bar1 As New Steema.TeeChart.Styles.Bar() Dim PageNumber1 As New Steema.TeeChart.Tools.PageNumber() TChart1.Series.Add(Bar1) TChart1.Tools.Add(PageNumber1) Bar1.FillSampleValues(100) TChart1.Page.MaxPointsPerPage = 10 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TChart1.Page.Previous() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TChart1.Page.Next() End Sub