2015-02-23 2 views
0

У меня есть форма в приложении, которая используется для предварительного просмотра отчета. Он имеет 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 

ответ

0

Они ключ был "PreviewPane.StartPageIdx"

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

Смежные вопросы