IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

dessiner des lignes en VB


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 48
    Par défaut dessiner des lignes en VB
    Bonjour, je travaille actuellement sur un logiciel d'hydraulique basé sur la formule de Caquot. J'aimerais que les utilisateurs puissent visualiser le réseau de canalisations qu'ils créent au fur et à mesure. Mon logiciel fonctionne de la façon suivante. L'utilisateur entre les données d'une branche du réseau (pente, longueur, coefficient d'imperméabilisation, etc), ensuite il rentre une seconde branche, puis une 3ème, 4ème, etc s'il le souhaite. Ensuite, il va sur la page suivante et peut appliquer la formule de Caquot, soit en série, soit en parallèle. Dès qu'il appuie sur le bouton calcul correspondant, j'aimerais ques des traits, symbolisant les branches du réseau, apparaissent sur une nouvelle forme. Peu importe les dimensions des traits, je veux juste respecter le fait que les branches soient en série ou en parallèle.

    Est-ce possible avec le language VB? Comment peut-on faire cela simplement?

    Merci.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    oui c'est bien sûr faisable simplement, voir dans le cour du Dr Ph. Lasserre

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 48
    Par défaut
    Voici le début de mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Class Form7
     
        Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
     
            If Form4.TextBoxbranche1.Text = "" Then
            Else
                e.Graphics.DrawLine(Pens.Red, 10, 40, 100, 40)
                e.Graphics.DrawString(Form4.TextBoxbranche1.Text, Font, Brushes.Black, 40, 27)
            End If
     
            If Form4.TextBoxbranche2.Text = "" Then
            Else
                e.Graphics.DrawLine(Pens.Red, 10, 80, 100, 40)
                e.Graphics.DrawString(Form4.TextBoxbranche2.Text, Font, Brushes.Black, 45, 65)
            End If
            If Form4.TextBoxBranche3.Text = "" Then
            Else
                e.Graphics.DrawLine(Pens.Red, 10, 0, 100, 40)
                e.Graphics.DrawString(Form4.TextBoxBranche3.Text, Font, Brushes.Black, 45, 3)
            End If
        End Sub
    End Class
    Ensuite je voudrais pouvoir faire la meme chose mais en décalant l'abcisse de 90 sans perdre les branches précédentes.

    Par exemple : l'utilisateur rentre 1 2 et 3 dans les 3 textbox, cela trace 3 traits en parrallèle avec les chiffres 1 2 et 3 a coté de chaque branche. Ensuite je voudrais que lorsque l'utilisateur rentre de nouvelles valeurs dans les 3 textbox, je voudrais que cela rajoute des branches a la suite sans tout supprimer ce qui a été fait précédemment. Car quand je rentre une deuxième série de valeurs dans les textbox, mon dessin initizl est remplacé par le nouveau. Mais j'aimerais justement que ca se mette à la suite du premier dessin.

    J'espere que vous avez compris mon probleme.
    Merci

  4. #4
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,

    J'ai essayé je pense avoir une solution pour toi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        Dim rectangles As New List(Of Rectangle)
        Dim x As Integer = 0
        Dim y As Integer = 0
        Dim canDraw As Boolean = False
     
        Private Sub Form1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
            If canDraw Then    
                Dim r As New Rectangle(New Point(x, y), New Size(50, 50))
                rectangles.Add(r)
     
                e.Graphics.FillRectangles(Brushes.Black, rectangles.ToArray)
                canDraw = False
            End If
        End Sub
     
     
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            x += 50
            y += 50
            canDraw = True
            Refresh()
        End Sub
    Ici, j' ajoute au fur et à mesure des rectangles donc c'est pas tout à fait ce que tu veux mais tu peux t'en inspirer..

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 48
    Par défaut
    Merci, malheureusement, j'ai pas mal de difficultés à adapter votre programme pour des lignes. Par exemple, vous utilisez "List(Of rectangle)" mais, "List(Of Line)" n'existe pas. Donc c'est pas évident.

    Quelqu'un aurait une idée?

  6. #6
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Dans ce bout de code je ne te montrais qu'une solution (parmi tant d'autres) pour garder les éléments que tu dessine. Après c'est de la logique..

    On sait qu' une ligne est caractérisée par 2 points.. Tu peux par exemple avoir une List(of Point()) ou si ta ligne revient souvent dans ton programme, tu peux créer une classe Ligne contenant des points.
    Ensuite utilise la méthode Graphics.DrawLine pour tracer tes lignes..

Discussions similaires

  1. Débutant - Dessiner des lignes
    Par jeromeke22 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 07/05/2007, 22h37
  2. Dessiner des lignes de couleur différente
    Par gids01 dans le forum 2D
    Réponses: 4
    Dernier message: 06/11/2006, 11h14
  3. [DBGRID][FAQ] Dessiner des lignes de couleur
    Par okparanoid dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/10/2005, 17h10
  4. dessiner des lignes "cliquables"
    Par r0d dans le forum Webdesign & Ergonomie
    Réponses: 14
    Dernier message: 21/03/2005, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo