Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Passaggio variabile in form  Anteprima
Forum - C# / VB.NET - Passaggio variabile in form Anteprima

Avatar
sergio58 (Normal User)
Rookie


Messaggi: 38
Iscritto: 05/08/2008

Segnala al moderatore
Postato alle 8:43
Mercoledì, 17/09/2008
Di nuovo ben ritrovati a tutti,
il problema che mi affligge oggi è che non riesco a far visualizzare il numero di pagine di un documento nel form anteprima di stampa.
Mi spiego meglio, ho un form MDI padre , da un form figlio chiamo l'anteprima di stampa con questo codice che si trova in un bottone(forse sbagliato):

Codice sorgente - presumibilmente VB.NET

  1. Private Documento As Printing.PrintDocument
  2. Private sPagina As String
  3.  
  4. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStampa.Click
  5.      
  6.         Documento = New Printing.PrintDocument
  7.      
  8.         AddHandler Documento.PrintPage, AddressOf prtAllegatiCli_PrintPage
  9.         Dim anteprimaCli As New frmAnteprimaAllegati(Documento)
  10.         With anteprimaCli
  11.             .ShowDialog()
  12.         End With
  13.         anteprimaCli.Dispose()
  14. End Sub


nel form anteprima c'è il codice che richiama la routine printpage:
Codice sorgente - presumibilmente VB.NET

  1. Dim strTestoPassato As String
  2.  
  3.     Public Sub New(ByVal strPagine As String)
  4.         InitializeComponent()
  5.        
  6.         strTestoPassato = strPagine
  7.     End Sub
  8.  
  9.     Public Sub visualizza()
  10.         lblPagine.Text = strTestoPassato
  11.     End Sub
  12.     Public Sub New(ByVal documento As Printing.PrintDocument)
  13.         InitializeComponent()
  14.         Me.PrintPreviewControl2.Document = documento
  15.     End Sub



ed alla fine della routine di stampa ho messo:

Codice sorgente - presumibilmente VB.NET

  1. If IndiceCiclo < 5 Then
  2.             Pagina = Pagina + 1
  3.             e.HasMorePages = True
  4.          
  5.         Else
  6.             e.HasMorePages = False
  7.  
  8.             sPagina = CStr(Pagina)
  9.             Dim Anteprima As New frmAnteprimaAllegati(sPagina)
  10.             Anteprima.visualizza()
  11.         End If


Ho eseguito il debug il numero delle pagine viene passato nel form anteprima , ma non viene visualizzato, perchè dopo :
Codice sorgente - presumibilmente C# / VB.NET

  1. With anteprimaCli
  2.             .ShowDialog()
  3.         End With


non visualizza più niente.
Qualche consiglio ?
Sergio

Ultima modifica effettuata da Il Totem il 17/09/2008 alle 15:10
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:14
Mercoledì, 17/09/2008
Non ho capito niente. Dove sarebbero da visualizzare le pagine: sul form anteprima o sul documento?
Il form anteprima viene creato con un parametro PrintDocument, e poi con una stringa, e non capisco perchè. Inoltre la routine di stampa è parziale.

PM Quote
Avatar
sergio58 (Normal User)
Rookie


Messaggi: 38
Iscritto: 05/08/2008

Segnala al moderatore
Postato alle 16:02
Mercoledì, 17/09/2008
Hai ragione, nella foga di scrivere ho dimenticato di dire alcune cose:
Il formAnteprima di stampa contiene il controllo
PrintPreviewControl1, sul quale verrà visualizzato il documento.Contiene anche la label lblPagine su cui io vorrei venisse visualizzato il numero delle pagine del documento elaborate nella routine prtAllegati_PrintPage, che si trova nel form figlio.
Se ti riferisci alla stringa sPagina dovrebbe contenere il numero delle pagine(avrei potuto definirlo in Integer), che è collegato alla routine:

Public Sub New(ByVal strPagine As String)
        InitializeComponent()        
        strTestoPassato = strPagine
    End Sub

Non riesco a fare questo  passaggio.
Se non sono stato abbastanza chiaro, o se hai bisogno di qualche altra parte di codice sono a disposizione.
Sergio.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:20
Giovedì, 18/09/2008
... Quale passaggio?

PM Quote
Avatar
sergio58 (Normal User)
Rookie


Messaggi: 38
Iscritto: 05/08/2008

Segnala al moderatore
Postato alle 16:02
Venerdì, 19/09/2008
Il passaggio di far visualizzare il valore del numero delle pagine nella label lblPagine che si trova nel form anteprima

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:23
Sabato, 20/09/2008
Quindi la routine di stampa si trova nel form principale, e presumo che anche il With sia sempre nel form principale. Penso che il tuo unico problema non sia visualizzare il numero, ma visualizzarlo sullo stesso form aperto. Per questo ti suggerisco di dichiarare il form di anteprima come variabile globale.

P.S.: dopo visualizza() manca Show().

Ultima modifica effettuata da Il Totem il 20/09/2008 alle 15:24
PM Quote