none
Diagramas de flujo RRS feed

  • Pregunta

  • Hola a todos.

    Tengo que desarrollar una especie de diagrama de flujo. Este diagrama lo tengo que realizar de forma gráfica y en principio se debe de dibujar a partir de unos datos que determinan el diagrama, aunque más tarde se deberá de ampiar permitiendo poder definirlo. El caso es que debo realizar una diagrama de flujo representando con cajas y flechas diferentes estados y transiciones. De cada caja puede salir más de una flecha a otra caja. Aunque me enrrolle y no me salga es un diagrama de flujo normal.

    ¿Podeis ayudarme a realizarlo? No se si deberia empezar a pintarlo en un form, como unir las flechas de un estado a otro, etc.... ¿Conoceis de alguna libreria que realice esta parte gráfica?

    Un saludo.

    Gracias.

    miércoles, 23 de septiembre de 2015 6:36

Respuestas

Todas las respuestas

  • Sí que te recomendaría utilizar controles de terceros en lugar de tratar de dibujarlos tu mismo, más aún si en un futuro quieres añadir funcionalidad para que el usuario pueda diseñarse sus propios diagramas.

    Puedes echarle un vistazo a:

    GoDiagram for WinForms

    Syncfusion

    yWorks


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    miércoles, 23 de septiembre de 2015 7:04
  • A diferencia de lo que dice Asier, yo en cambio sí que me decidiría a pintar el diagrama yo mismo en lugar de usar una librería de terceros. Si manejas GDI+ (espacio de nombres System.Drawing), es relativamente sencillo.

    Simplemente, mantén una estructura en memoria que contenga una lista de los rectángulos a dibujar y de las líneas entre ellos.

    A continuación, implementa el evento Paint del contenedor en el que vayas a realizar el dibujo. Puede ser un PictureBox para pintar en pantalla, y puede ser un PrintDocument para salir a impresora. Los dos pueden llamar a la misma subrutina y así puedes mostrar el gráfico en pantalla o imprimirlo.

    Dentro del Paint, usa funciones de GDI+ para pintar el diagrama a partir de la variable que contiene los datos que lo definen. Para los rectángulos, usa DrawRectangle. Puedes etiquetarlos llamando a DrawString. Las flechas las pintas mediante DrawLine, y si necesitas una punta de flecha puedes hacer dos llamadas a DrawLine que pinten dos segmentos pequeñitos para formar la punta.

    En total, no debería llevar demasiado código, siempre que no necesites muchas maravillas en el diagrama.

    miércoles, 23 de septiembre de 2015 7:39
    Moderador
  • Gracias Asier. En verdad lo queria hacer con alguna libreria por esto de agilizar el trabajo, pero las librerias que me comentas son todas de pago.

    Aun asi muchas gracias.


    GeorgeBoss

    jueves, 24 de septiembre de 2015 8:32
  • Gracias Alberto por tu respuesta. Yo queria hacerlo utilizando alguna libreria para ahorrarme trabajo pero al final tengo que hacerlo como me indicas tu aunque estoy utilizando los objetos 'shape'.

    Un saludo.


    GeorgeBoss

    jueves, 24 de septiembre de 2015 8:35
  • También existen algunas opciones gratuitas. Puedes echarles un vistazo por si te encajan:

    nshape .NET diagramming framework for industrial applications

    Diagram.net

    Microsoft Automatic Graph Layout


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 24 de septiembre de 2015 8:49
  • Muchas gracias algo así es lo que estaba buscando.

    GeorgeBoss

    martes, 29 de septiembre de 2015 11:38