У меня есть форма в приложении, которая используется для предварительного просмотра отчета. Он имеет C1Ribbon вверху, который содержит кнопки навигации, и отображение C1PrintPreview в PreviewPane. Я хочу, чтобы кнопки навигации на ленте (сначала, предыдущий, следующий, последний), а также текстовое поле, в которое вводился конкретный номер страницы, соответствующим образом просматривали предварительный просмотр отчета. До сих пор вся документация и образцы, которые я нашел, касались только добавления гиперссылок непосредственно к самому отчету ... поэтому мне трудно адаптировать его к моему использованию. Ниже я до сих пор ... У меня нет ошибок сборки или времени выполнения, это просто ничего не делает.Перейти к странице в C1PrintDocument
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, я не скажу приложение, что делать с ним после этого. Но я не уверен, как это сделать - это не похоже на метод «jumptopage» для C1PrintPreview (желательно, чтобы это было так просто). Кнопки в ленте не имеют свойства гиперссылки, поэтому я не могу установить это, когда форма загружается, как и во всех найденных образцах. Не знаю, куда идти отсюда ... Также я даже не знаю, как я должен использовать Absolute PageJumpTypeEnum ... PageNo только для чтения.
Спасибо!
UPDATE 2/25:
я узнал, что я должен иметь дело со свойствами Preview Pane ... не C1PrintDocument. С помощью приведенного ниже кода используются кнопки навигации и указание номера страницы. Моя единственная проблема теперь показывает текущую страницу в этом номере страницы. С тем, что у меня есть, PreviewPane.CurrentHistoryEntry просто идет до 1 (даже если бы я был на странице, отличной от 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