Report 跳转到打印文档中的页面

Report 跳转到打印文档中的页面,report,componentone,print-preview,Report,Componentone,Print Preview,我的应用程序中有一个用于预览报告的表单。它的顶部有一个C1Ribbon,其中包含导航按钮,还有一个C1PrintPreview,显示在PreviewPane中。 我希望功能区中的导航按钮(第一个、上一个、下一个、最后一个)以及用于输入特定页码的文本框能够相应地在报表预览中导航。到目前为止,我发现的所有文档和示例都只涉及将超链接直接添加到报告本身……因此我很难使其适应我的使用。 下面是我到目前为止所做的…我没有得到任何构建或运行时错误,它只是不起任何作用 Private Sub btnNext_C

我的应用程序中有一个用于预览报告的表单。它的顶部有一个C1Ribbon,其中包含导航按钮,还有一个C1PrintPreview,显示在PreviewPane中。 我希望功能区中的导航按钮(第一个、上一个、下一个、最后一个)以及用于输入特定页码的文本框能够相应地在报表预览中导航。到目前为止,我发现的所有文档和示例都只涉及将超链接直接添加到报告本身……因此我很难使其适应我的使用。 下面是我到目前为止所做的…我没有得到任何构建或运行时错误,它只是不起任何作用

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有“jumptopage”方法(希望这么简单)。功能区中的按钮没有超链接属性,因此我无法在窗体加载时将其设置为我找到的所有示例中的超链接属性。不知道从这里到哪里去。。。 而且我甚至不知道我应该如何使用绝对PageJumpTypeEnum…PageNo是只读的

谢谢大家!

更新2/25:

我了解到我应该处理预览窗格的属性…而不是C1PrintDocument。使用下面的代码,导航按钮和指定页码将起作用。现在我唯一的问题是在页码框中显示当前页面。根据我所拥有的,PreviewPane.CurrentHistoryEntry只会变为1(即使我之前所在的页面不是1)

Private Sub btnNext\u Click(发送者作为对象,e作为事件参数)处理btnNext。单击
PreviewPane.DoGoNextPage()的
端接头
私有子btnLast\u单击(发送者作为对象,e作为事件参数)处理btnLast。单击
Dim lastPage As DocumentLocation=新的DocumentLocation(report.Pages(report.Pages.Count-1))
PreviewPane.GotoDocumentLocation(最后一页)
端接头
Private Sub btnPrevious_Click(发送者作为对象,e作为事件参数)处理btnPrevious。单击
PreviewPane.DoGoPreviousPage()的预览
端接头
私有子btnFirst_Click(发送方作为对象,e作为事件参数)处理btnFirst。单击
Dim firstPage As DocumentLocation=新的DocumentLocation(report.Pages(0))
PreviewPane.GotoDocumentLocation(首页)
端接头
私有子导航_KeyDown(发送方作为对象,e作为KeyEventArgs)处理txtPageNum.KeyDown
如果e.KeyValue=Keys,则输入
Dim pageNum As Integer=CInt(txtPageNum.Text)
如果(pageNum>0)和(pageNum它们的键是“PreviewPane.StartPageIdx”

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

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