none
¿Hay alguna alternativa en VB.Net para dibujar formas geométricas? RRS feed

  • Pregunta

  • Entiendo que se puede hacer referencia al control Shape heredado de Visual Basic para dibujar líneas, círculos, rectángulos, pero ¿habrá alguna otra alternativa propia de Visual Net?
    • Editado James2016-2 jueves, 21 de noviembre de 2019 17:17
    jueves, 21 de noviembre de 2019 17:16

Respuestas

  • Sí: Implementa un manejador de eventos para el evento Paint del contenedor donde quieras pintar los gráficos. El contenedor puede ser el propio formulario si quieres que los gráficos aparezcan sobre el fondeo del formulario.

    Dentro de ese manejador te llega un parámetro "e" que contiene una propiedad "Graphics" a través de la cual puedes enviar las instrucciones de dibujo que hay en System.Graphics. Por ejemplo, e.Graphics.DrawLine(....) para pintar una línea, y similarmente DrawEllipse, DrawPolygon, DrawRectangle, etc.

    Una precaución: hay una cosa que confunde a los principiantes que usan este mecanismo, y es que piensan que el gráfico solo se pinta una vez al principio y luego te olvidas de él. No funciona así; Windows dispara el evento Paint todas las veces que lo considera oportuno. Por ejemplo, si redimensionas el formulario estirando su borde, se vuelve a disparar el Paint y tienes que dibujar de nuevo el contenido del formulario (posiblemente cambiando el tamaño de todo lo que pintas). Así pues, tienes que tener en cuenta dentro del método Paint que se puede disparar en cualquier momento y tienes que ser capaz de repintar todo el gráfico cada vez que esto suceda.
    jueves, 21 de noviembre de 2019 17:29

Todas las respuestas

  • Sí: Implementa un manejador de eventos para el evento Paint del contenedor donde quieras pintar los gráficos. El contenedor puede ser el propio formulario si quieres que los gráficos aparezcan sobre el fondeo del formulario.

    Dentro de ese manejador te llega un parámetro "e" que contiene una propiedad "Graphics" a través de la cual puedes enviar las instrucciones de dibujo que hay en System.Graphics. Por ejemplo, e.Graphics.DrawLine(....) para pintar una línea, y similarmente DrawEllipse, DrawPolygon, DrawRectangle, etc.

    Una precaución: hay una cosa que confunde a los principiantes que usan este mecanismo, y es que piensan que el gráfico solo se pinta una vez al principio y luego te olvidas de él. No funciona así; Windows dispara el evento Paint todas las veces que lo considera oportuno. Por ejemplo, si redimensionas el formulario estirando su borde, se vuelve a disparar el Paint y tienes que dibujar de nuevo el contenido del formulario (posiblemente cambiando el tamaño de todo lo que pintas). Así pues, tienes que tener en cuenta dentro del método Paint que se puede disparar en cualquier momento y tienes que ser capaz de repintar todo el gráfico cada vez que esto suceda.
    jueves, 21 de noviembre de 2019 17:29
  • Ah ok, tendré en cuenta el repintado. Gracias.
    jueves, 21 de noviembre de 2019 20:20