跳转到C1PrintDocument中的Page

时间:2015-02-23 20:12:34

标签: report componentone print-preview

我的应用程序中有一个表单用于预览报表。它的顶部有一个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

1 个答案:

答案 0 :(得分:0)

他们的关键是“PreviewPane.StartPageIdx”

txtPageNum.Text =(PreviewPane.StartPageIdx + 1).ToString