Visual Basic.NET - Como saber si se imprimio desd PrintPreviewDialog1

 
Vista:

Como saber si se imprimio desd PrintPreviewDialog1

Publicado por mama (5 intervenciones) el 06/02/2006 15:53:45
Pos eso!
kisiera algo parecido a esto:

If me.PrintPreviewDialog1.ShowDialog() = System.Windows.Forms.DialogResult.Cancel Then
MessageBox.Show("No imprimio!!!!!")
Else
MessageBox.Show("kiza imprimio!!!!!")
End If

Pero el problem es q solo se puede salir d un dialog d esos dando a cancel: si imprimes,el dialog sigue ahi y despues hay q dar a cerrar pa kitarlo,asiq siempre sale con cancel.
Necesito saber si se imprimio fisicamente alguna hoja y los metodos como endprint y demas basura solo dicen s se termino d mandar las hojas a la vista previa,pero no a la impresora!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como saber si se imprimio desd PrintPreviewDial

Publicado por erque (26 intervenciones) el 06/02/2006 20:35:56
Si lo que quieres saber es si se pulsa o no en cancelar, te pongo un ejemplo que tengo estandar para utilizar en mis aplicaciones:
Dim siono As Integer
siono = PrintDialog1.ShowDialog()
If siono = 1 Then
PrintDocument1.PrinterSettings.PrinterName = PrintDialog1.PrinterSettings.PrinterName
PrintDocument1.DefaultPageSettings.Landscape = True 'esto es para apaisado o vertical
PrintDocument1.Print()
Else
msgbox("se ha pulsado en cancelar")
Exit Sub
End If

Espero que te sea útil el código. Un saludo y gracias por contestar mi pregunta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber si se imprimio desd PrintPreviewDial

Publicado por mama (5 intervenciones) el 07/02/2006 17:21:06
Hola!
hice algo parecido alo q m dijiste,pero no rula porq es un dialogo de vista previa: "PrintPreviewDialog1", y no un "PrintDialog1" q usas tu.
El problema es q al pulsar el boton imprimir del dialogo de vista previa,este no se cierra devolviendo 1 o true o lo q sea,sino q permanece hasta q se pulse en cerrar y siempre devuelve 0,cancel,o lo q sea!!

Lo q hice: Siempre muestra "No imprimio!"

Dim siono As Integer
siono = FormActiva.PrintPreviewDialog1.ShowDialog()
If siono = 1 Then 'FormActiva.PrintPreviewDialog1.ShowDialog() Then
MessageBox.Show("imprimio!!!!!")
Else
MessageBox.Show("No imprimio!!!!!")
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber si se imprimio desd PrintPreviewDial

Publicado por erque (26 intervenciones) el 07/02/2006 22:59:59
A ver así:
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.WindowState = FormWindowState.Maximized
PrintDocument1.DefaultPageSettings.Landscape = True
PrintPreviewDialog1.ShowDialog()

Esto te debe sacar una vista previa desde donde puedes hacer zoon, cambiar a vista de varias páginas, imprimir y cerrar.
Si el printdocument1 no lo haces correctamente (con el e.HasMorePages = True y el False) te puede crear un bucle infinito de página. Por eso utilizo el preview para probar las impresiones en un preview antes de que me imprima la osti de folios. Antes era más fácil con el VB6 y el Print.

Creo que es esto lo que quieres.

No se si has visto mi mensaje sobre las variables de memoria en formularios que no son MDI. Por favor, mira lo que he puesto.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber si se imprimio desd PrintPreviewDial

Publicado por mama (5 intervenciones) el 08/02/2006 10:25:39
Sigo sin tener lo q kiero: Solo kiero saber si una vez mostrdo el dialog, se pulso en algun momento al boton-icono con el dibujin de la impresora(osea,si se imprimio realmente esas hojas),y no se puede hacer con el valor q devuelve el dialog(creo),porq para cerrarlo siempre hay q dar en el aspa de la eskina superior dcha,o en el boton cerrar, siempre devuelve: "Cancel" o yo q se(se haya imprimido algo antes o no!).

A ver si me explike bien ahora.

Ciao
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber si se imprimio desd PrintPreviewDial

Publicado por mama (5 intervenciones) el 08/02/2006 10:54:27
Ya me autorespondo hasta yo,pa animar un poco el tema,jeje!
Escribi este metodo pero no salta clicando en to los botones del dialog(bueno!no probe justo con el q necesito:el icono impresora,pero es q toy n una empresa y no m apetec star pidiendo permiso pa imprimir 50veces,y si no salta con to los demas iconos supongo q con ese tampoco)

Public Sub ObtenerAutoScroll2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog1.Click
MessageBox.Show(sender.GetType.Name)
MessageBox.Show(e.GetType.Name)
End Sub

Solo necesito algo q m diga si se pulso en icono imprimir!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como saber si se imprimio desd PrintPreviewDial

Publicado por erque (26 intervenciones) el 08/02/2006 20:05:32
Prueba con este y verás que algo se consigue. Con el metodo closing puedes conseguir lo que antes en el cancel de vb6.

Private Sub PrintPreviewDialog1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles PrintPreviewDialog1.Closing
MessageBox.Show(sender.GetType.Name)
MessageBox.Show(e.GetType.Name)

End Sub

No he probado con más metodos pero seguro que uno de ellos te puede guardar en una variable el valor del botón pulsado. Por lo pronto con este ejemplo, el segundo msgbox te indica Cancel.

Ya he dado también con el tema de las variables publicas para utilizarlas en cualquier formulario. La solución me la han dado en el foro del Guille. La solución es incluir un módulo y dentro de el las variables públicas que se necesiten serán accesibles desde cualquier formulario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar