Jump to content
obamaself

[Resolvido] PrintDocument

Recommended Posts

obamaself

Boas, criei uma função para imprimir todos os objectos do meu formulário, só que tenho um problema.

No formulário, tenho uma imagem com várias textbox em cima.

Ao imprimir, a imagem fica por cima das textbox. Há alguma maneira de meter a imagem por baixo?

  For Each objecto As Control In Me.Controls
			 If TypeOf objecto Is PictureBox Then

				Dim pic As PictureBox = objecto
				e.Graphics.DrawImage(pic.Image, objecto.Location.X + 60, objecto.Location.Y + 140)

			End If

			If TypeOf objecto Is TextBox Then
				e.Graphics.DrawString(objecto.Text, objecto.Font, Brushes.Black, objecto.Location.X + 2 + 60, objecto.Location.Y + 140)
				e.Graphics.DrawRectangle(Pens.Black, objecto.Location.X + 60, objecto.Location.Y + 140, objecto.Width, objecto.Height)
			End If
  Next

Share this post


Link to post
Share on other sites
nelsonr

Boas,

acho que por default a ordem dos controlos dentro do Me.Controls está ao contrário, ou seja, começa com o controlo que está mais à frente.

Provavelmente terás de inverter a ordem.

Só para testares, clica na imagem e faz o bring to front e experimenta imprimir.

Caso funcione, terás de inverter a lista de controlos.

Algo assim (não testado):

For i As Integer = Me.Controls.Count - 1 To 0 Step -1
dim objecto as Control = Me.Controls(i)
'...

Edited by nelsonr

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.