CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Graficos persistentes en VB2005

(1/2) > >>

Jimbenit:
Hola a todos...

estoy tratando de hacer una linea en un picturebox(que sea persistente, es decir, que el picturebox no la borre cuando se minimiza y despues de maximiza)  por medio de codigo, esta linea se debe dibujar desde un Button.
Cuando pulso el botón, se dibuja la linea...

Algo asi como en VB6.0, mirar el siguiente code de VB6.0


--- Código: Visual Basic ---Private Sub Command1_Click() Me.Picture1.AutoRedraw = TrueMe.Picture1.Line (0, 0)-(Me.Picture1.ScaleWidth, Me.Picture1.ScaleHeight) 'Como se hace esta linea persistente en VB2005 (linea persistente creada por code desde un boton)? End Sub  
Alguien sabe como se hace esta linea en VB2005? ( me imagino que debes ser sencillo, pero no se como es)

Saludos y gracias por leer el post.

Nebire:
Tienes que poner los métodos gráficos dentro del evento paint del contenedor deseado.
Si no sabes como dibujar líneas, te pongo un copy/paste de otro mensaje anterior: http://foros.solocodigo.com/viewtopic.php?f=53&t=37584&p=136812#p136812


--- Cita de: "Nebire" ---Si en vb6.0 querías hacer una línea dentro de un picture hacía como indicas picture1.line(xo,yo)-(xf,yf),color . Al hacer esto fíjate que el grueso de línea y algunas otras opciones gráficas quedaban definidas por el contenedor donde se dibujaba es decir picture1.DrawWidth  implicaba el ancho de los métodos gráficos referidos al picture1.

Ahora en VB2005-2008...  se ha querido separar e independizar, te pongo un ejemplo que será más significativo y te comento dentro del mismo:


--- Código: Visual Basic --- Dim p = New Pen(Color.Red, 2) ' Creo una 'brocha' del color y ancho indicados ' suele ser útil si vamos a emplear mucho gráfico importar la claseImports System.Drawing.Graphics ' cuando queremos utilizar un gráfico a nivel de formulario suele ser útil describir una variable para usar los gráficosDim g As Graphics ' para usarlo en un momento dado, por ejemplo en un pictureboxg = PictureBox1.CreateGraphics  ' esto indica que g vamos a usarlo dentro del picturebox1 ' finalmente de ejemplo una línea:g.DrawLine(p, xo, yo, xf, yf)  ' el pen que indicamos, y las cordenadas todas juntitas...   
--- Fin de la cita ---

Jimbenit:
Nebire, gracias por responder...

El problema es que el codigo debe ir en un boton y no en el evento paint.

Imagina que se quiere hacer un rectangulo con el objeto rectangle en un picturebox, el usuario digitara valores en unos textbox, de acuerdo a estos valores el rectangulo tomará la forma de ancho y alto. Por ejemplo si el usuario dice que la base es 1 y el alto es 100, el rectangulo será muy angosto y muy alto cuando el usuario pulse un button ("Aceptar"), pero si el usuario dice que la base es 100 y el alto es 1 el rectangulo será muy ancho y de muy poca altura, este se dibujará en el picture cuando el usuario pulse el button ("Aceptar").

Problema: Es que el rectangulo no es persistente, se borra cuando:
1) Se dibuja por primera vez
2) Se superpone una ventana encima de otra
3) Se minimiza y luego se maximiza...
4) ...
5) ...
etc...

Si uso el evento paint no puedo hacer el efecto de "Introduzco valores, Pulso aceptar y el rectangulo cambia dentro del picture"...

Nota:
No tengo problemas con saber dibujar las lineas, rectangulos, circulos, etc...
Mi problema es de Persistencia.

Saludos y gracias de nuevo.

Nebire:

--- Cita de: "Jimbenit" ---Nebire, gracias por responder...

El problema es que el codigo debe ir en un boton y no en el evento paint.

Imagina que se quiere hacer un rectangulo con el objeto rectangle en un picturebox, el usuario digitara valores en unos textbox, de acuerdo a estos valores el rectangulo tomará la forma de ancho y alto. Por ejemplo si el usuario dice que la base es 1 y el alto es 100, el rectangulo será muy angosto y muy alto cuando el usuario pulse un button ("Aceptar"), pero si el usuario dice que la base es 100 y el alto es 1 el rectangulo será muy ancho y de muy poca altura, este se dibujará en el picture cuando el usuario pulse el button ("Aceptar").
 
--- Fin de la cita ---
No necesito imaginarlo, te aseguro que veo el código sin siquiera escribirlo, pero bueno digamos que imagino  ¿¿¿¿¿¿¿¿¿¿¿ y... ????????????


--- Cita de: "Jimbenit" ---Si uso el evento paint no puedo hacer el efecto de "Introduzco valores, Pulso aceptar y el rectangulo cambia dentro del picture"...
 
--- Fin de la cita ---

Porqué no ???????.

Te dejo tiempo para pensarlo... te pondré un ejemplo sencillo, pero no antes que repienses tus desafortunadas afirnaciones (desafortunadas por incorrectas, nada más, que no se vea ningún desprecio en ello) . Te invito a que demuestres porqué no puedes hacer lo que te decía en el evento paint consiguiendo lo que tu quieres hacer... sólo te doy una pista, que no es una pista, que es la madre de la programación: 'control', tu tienes el control, controla...

Te lo puedo decir de otro modo: ¿ para qué crees tú que sirve el evento paint ?, ¿ Qué es lo que hace el evento paint ? , en vb2005, en vb6 o en cualquier lenguaje habido y por haber...  ¿ qué crees tú que hace autoredraw ?

Jimbenit:

--- Cita de: "[color=#40FF00 ---Nebire[/color]"]
No necesito imaginarlo, te aseguro que veo el código sin siquiera escribirlo, pero bueno digamos que imagino  ¿¿¿¿¿¿¿¿¿¿¿ y... ????????????

--- Fin de la cita ---
:lol:  :lol:  :lol:
Tienes un buen sentido del humor y una capacidad asombrosa (no dudo en nada en que lo puedas ver, estoy seguro de ello)


--- Cita de: "[color=#40FF00 ---Nebire[/color]"]
Porqué no ???????.

Te dejo tiempo para pensarlo... te pondré un ejemplo sencillo, pero no antes que repienses tus desafortunadas afirnaciones (desafortunadas por incorrectas, nada más, que no se vea ningún desprecio en ello) . Te invito a que demuestres porqué no puedes hacer lo que te decía en el evento paint consiguiendo lo que tu quieres hacer... sólo te doy una pista, que no es una pista, que es la madre de la programación: 'control', tu tienes el control, controla...

Te lo puedo decir de otro modo: ¿ para qué crees tú que sirve el evento paint ? , en vb2005, en vb6 o en cualquier lenguaje habido y por haber...
--- Fin de la cita ---

Te haré caso, voy a pensar y luego escribo, creo que respondí muy rápido....

Gracias Nebire. :good:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa