图表分页
加入官方社群740060302,欢迎相互交流
如果图表的数据源包含的数据比在一个图表屏幕上清楚显示的数据多,您可能希望将图表划分为可以翻阅的页面。这可以通过TeeChart Editor或编程实现。
使用图表编辑器进行分页
页面大小可以用TeeChart Editor确定,但仍然有必要在项目中添加分页按钮或ChartPageNavigator组件,或者您可以在运行时使用TeeChart Editor,以允许用户使用Editor更改页面。
在设计时,选择TeeChart Editor中的分页。
在“Points per Page”框中,键入(或滚动到)您希望在图表页面上看到的系列点数。如果您正在为系列编码数据值,那么导航按钮将不会突出显示,直到您运行项目、填充系列并在运行时显示图表编辑器。如果您连接到ADO.NET数据源,您应该看到分页在设计时立即生效。
运行:
要在运行时通过图表编辑器访问分页属性,请使用ShowEditor。
[C#.Net] tChart1.ShowEditor(); [VB.Net] TChart1.ShowEditor()
使用代码分页
分页属性和方法可以通过Page类获得。
向图表添加分页所需的步骤:
- 定义Points per 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
这就是本教程的全部内容!下一个教程处理Axis 和 Legend 操作。