我的应用程序中有一个表单用于预览报表。它的顶部有一个C1Ribbon,它包含导航按钮,以及一个在PreviewPane中显示的C1PrintPreview。 我想要功能区中的导航按钮(第一个,上一个,下一个,最后一个),以及用于输入特定页码的文本框,以相应地浏览报告的预览。到目前为止,我发现的所有文档和示例都只涉及直接向报表本身添加超链接...所以我很难适应我的使用。 以下是我到目前为止...我没有得到任何构建或运行时错误,它只是没有做任何事情。
Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
Dim nextPage As C1LinkTargetPage = New C1LinkTargetPage(PageJumpTypeEnum.Next)
End Sub
Private Sub btnLast_Click(sender As Object, e As EventArgs) Handles btnLast.Click
Dim lastPage As C1LinkTargetPage = New C1LinkTargetPage(PageJumpTypeEnum.Last)
End Sub
Private Sub btnPrevious_Click(sender As Object, e As EventArgs) Handles btnPrevious.Click
Dim prevPage As C1LinkTargetPage = New C1LinkTargetPage(PageJumpTypeEnum.Previous)
End Sub
Private Sub btnFirst_Click(sender As Object, e As EventArgs) Handles btnFirst.Click
Dim firstPage As C1LinkTargetPage = New C1LinkTargetPage(PageJumpTypeEnum.First)
End Sub
Private Sub Navigation_KeyDown(sender As Object, e As KeyEventArgs) Handles txtPageNum.KeyDown
If e.Modifiers = Keys.Enter Then
Dim setPage As C1LinkTargetPage = New C1LinkTargetPage(PageJumpTypeEnum.Absolute)
'setPage. = CInt(txtPageNum.Text)
If setPage.PageNo = 0 Then
'what to do if number entered is not a page in document
End If
End If
End Sub
我意识到这可能只是因为即使我制作了一个C1LinkTargetPage,我也不会告诉应用程序之后如何处理它。但我不确定如何去做 - 它并不像那里有跳跃式的"跳跃式的" C1PrintPreview的方法(希望它很简单)。功能区中的按钮没有超链接属性,因此我无法在表单加载时设置,就像我找到的所有样本一样。不知道从哪里开始...... 此外,我甚至不知道我应该如何使用Absolute PageJumpTypeEnum ... PageNo是只读的。
谢谢!
更新2/25:
我了解到我应该处理预览窗格的属性...而不是C1PrintDocument。使用下面的代码,导航按钮和指定页码工作。我现在唯一的问题是在该页码框中显示当前页面。凭借我所拥有的,PreviewPane.CurrentHistoryEntry只会转到1(即使我在前一页以外的页面上)。
Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
PreviewPane.DoGoNextPage()
End Sub
Private Sub btnLast_Click(sender As Object, e As EventArgs) Handles btnLast.Click
Dim lastPage As DocumentLocation = New DocumentLocation(report.Pages(report.Pages.Count - 1))
PreviewPane.GotoDocumentLocation(lastPage)
End Sub
Private Sub btnPrevious_Click(sender As Object, e As EventArgs) Handles btnPrevious.Click
PreviewPane.DoGoPreviousPage()
End Sub
Private Sub btnFirst_Click(sender As Object, e As EventArgs) Handles btnFirst.Click
Dim firstPage As DocumentLocation = New DocumentLocation(report.Pages(0))
PreviewPane.GotoDocumentLocation(firstPage)
End Sub
Private Sub Navigation_KeyDown(sender As Object, e As KeyEventArgs) Handles txtPageNum.KeyDown
If e.KeyValue = Keys.Enter Then
Dim pageNum As Integer = CInt(txtPageNum.Text)
If (pageNum > 0) And (pageNum <= report.Pages.Count) Then
Dim setPage As DocumentLocation = New DocumentLocation(report.Pages(pageNum - 1))
PreviewPane.GotoDocumentLocation(setPage)
Else
txtPageNum.Text = PreviewPane.CurrentHistoryEntry.ToString
End If
End If
End Sub
答案 0 :(得分:0)
他们的关键是“PreviewPane.StartPageIdx”
txtPageNum.Text =(PreviewPane.StartPageIdx + 1).ToString