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

Visual Studio Discussion :

lineshape creation automatique


Sujet :

Visual Studio

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut lineshape creation automatique
    bonjour,

    je suis avec VS2015 en VB.net,

    je fais (enfin j'essaye) de faire un programme dans lequel j'incorpore une courbe (!) qui a en axe des X un volume et en axe des Y une pression, jusqu'a la ça va, grace a une textbox je rentre la pression maxi atteinte et le volume maxi pompé, sachant que le pompage se fait à 0.5 bpm, le volume max pompé divisé par 0.5 me donne un coef1 que j'applique aux labels en X en fonction de la longueur de mon axe X et idem sur l'axe Y avec un coef (1) pression, le tout rattrapé du décalage de l'axe X et Y et ça roule, c'est peut etre pas orthodoxe mais ça roule (si quelqu'un a une autre idée je prend).

    mais je voudrai faire les graduations sur les axes ... bien sur automatique !!!! si je devrai pouvoir me débrouiller avec les formules de position des lines de graduation, je ne vois pas comment ajouter des lignes (lineshape) automatiquement. Car celle ci serait en nbre directement dependante du volume pompé ou de la pression.

    je vous joins mes qqles lignes de code, sachant que les lineshape actuelle ont étés tracé avant dans la form et ne sont pas générées automatiquement.

    juste une précision, ma "courbe" est matérialisé par des labels qui ont pour text "x", donx si je pouvais les incrémenter automatiquement aussi ....

    merci


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    Public Class Form1
        Dim x As Double
        Dim y As Double
        Dim z As Double
        Dim coef As Double
        Dim coef1 As Double
        Dim moy As Double
        Dim gra As Double
     
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            LineShape1.StartPoint = New Point(25, 700)
            LineShape1.EndPoint = New Point(1400, 700)
            LineShape2.StartPoint = New Point(50, 710)
            LineShape2.EndPoint = New Point(50, 30)
            LineShape4.StartPoint = New Point(100, 685)
            LineShape4.EndPoint = New Point(100, 715)
        End Sub
     
        Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
     
            coef = TextBox21.Text
            coef1 = TextBox22.Text
     
            x = TextBox1.Text
            x = ((1000 / coef) * x) + 50
     
     
            y = TextBox2.Text
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            z = y
     
            Label1.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
            x = TextBox3.Text
            y = TextBox4.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
     
     
            Label2.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox6_TextChanged(sender As Object, e As EventArgs) Handles TextBox6.TextChanged
            x = TextBox5.Text
            y = TextBox6.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label3.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox8_TextChanged(sender As Object, e As EventArgs) Handles TextBox8.TextChanged
            x = TextBox7.Text
            y = TextBox8.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label4.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox10_TextChanged(sender As Object, e As EventArgs) Handles TextBox10.TextChanged
            x = TextBox9.Text
            y = TextBox10.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label5.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox12_TextChanged(sender As Object, e As EventArgs) Handles TextBox12.TextChanged
            x = TextBox11.Text
            y = TextBox12.Text
            x = ((1000 / coef) * x)
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label6.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox14_TextChanged(sender As Object, e As EventArgs) Handles TextBox14.TextChanged
            x = TextBox13.Text
            y = TextBox14.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label7.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox16_TextChanged(sender As Object, e As EventArgs) Handles TextBox16.TextChanged
            x = TextBox15.Text
            y = TextBox16.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label8.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox18_TextChanged(sender As Object, e As EventArgs) Handles TextBox18.TextChanged
            x = TextBox17.Text
            y = TextBox18.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label9.Location = New Point(x, y)
        End Sub
     
        Private Sub TextBox20_TextChanged(sender As Object, e As EventArgs) Handles TextBox20.TextChanged
     
            x = TextBox19.Text
            y = TextBox20.Text
            x = ((1000 / coef) * x) + 50
            y = (680 / coef1) * y
            y = Int(600 - y)
     
            Label10.Location = New Point(x, y)
     
            moy = y / 10
     
     
            LineShape3.StartPoint = New Point(50, 700)
            LineShape3.EndPoint = New Point(x, moy)
     
     
     
        End Sub
    End Class

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    quand tu poses quelque chose sur un form en mode design, visual studio génère le code correspondant (ce n'est pas de la magie)
    tu peux donc ouvrir ce fichier pour voir le code qui déclare un lineshape, le paramètre et l'ajoute au form
    ceci se trouve dans le fichier semi caché nomform.designer.vb qui est dans l'arborescence du form (y a ptete un bouton à cocher en haut de l'explorateur de solution pour afficher les fichiers cachés)

    après pour info les shapes sont des choses très peu performantes, si tu veux faire un truc plus efficace il faudra passer par du draw
    (enfin attend de voir si ca te va comme ca ou si ca rame pour s'afficher)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut
    Merci pour ta réponse effectivement j'ai trouvé le fichier dont tu parles, mais comment générer un label/line/textbox ? pour le nom ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Pas compris.
    Dim t as new texbox
    Me.Controls.Add(t)

    Après pour y accéder ailleurs et plus tard il faut le garder dans une variable de classe comme tout le reste. Et si tu en génères plusieurs il faut les garder dans une collection.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut
    je commence a entrevoir !, j'essaye des que j'ai 5 mn

    Merci

  6. #6
    Membre confirmé
    Homme Profil pro
    Drilling enginer
    Inscrit en
    Décembre 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Drilling enginer
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 123
    Par défaut
    bon je viens finalement d'avoir le temps de regarder de près, j'ai réussi à créer un nbre de textbox automatiquement, je re essaye avec des labels des que j'ai 5 mn, mais ça doit être kif kif, mon code n'est peut etre pas académique mais il fonctionne et me rempli même les cases voulues !!! avec la mise en forme, par contre si vous voyez des modifs à faire n’hésitez pas a en parler.

    le code me crée deux fois le nbre de textbox entré dans la textbox1 (si j'entre 4 j'ai 8 textbox) et les mets cote à cote

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Public Class Form1
     
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
     
            Dim coef As Integer
            Dim nbr As Single = 0
            Dim coeff As Single
            Dim vol As Double
     
     
            coef = TextBox1.Text
     
            coef = coef / 0.5
            coeff = coef * 2
            Vol = 0.5
     
     
            For i As Integer = 1 To coef
     
                Dim MyTextBox As New TextBox
                Dim loc_x As Single = 10
                Dim loc_y As Single
     
                MyTextBox.Name = "xxx"
                MyTextBox.Size = New System.Drawing.Size(65, 22)
                MyTextBox.Location = New System.Drawing.Point(loc_x, loc_y + 30)
                MyTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
                Me.Controls.Add(MyTextBox)
                MyTextBox.Text = vol
                loc_y = loc_y + 30
                vol = vol + 0.5
     
            Next
     
     
            For i As Integer = 1 To coef
     
                Dim MyTextBox As New TextBox
                Dim loc_x As Single = 100
                Dim loc_y As Single
     
                MyTextBox.Name = "xxx"
                MyTextBox.Size = New System.Drawing.Size(65, 22)
                MyTextBox.Location = New System.Drawing.Point(loc_x, loc_y + 30)
                MyTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
                Me.Controls.Add(MyTextBox)
     
                loc_y = loc_y + 30
     
            Next
     
        End Sub
    End Class

Discussions similaires

  1. [Répertoire] creation automatique de dossiers
    Par nestamak dans le forum Langage
    Réponses: 2
    Dernier message: 05/11/2006, 11h40
  2. Création automatique de code LaTeX de graphiques
    Par rafat dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 6
    Dernier message: 17/08/2006, 14h10
  3. Creation automatique d'Objects
    Par promopub dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 27/04/2006, 13h07
  4. Réponses: 19
    Dernier message: 21/03/2006, 19h56
  5. creation automatique dossier "Ma musique"...
    Par unNew dans le forum Windows XP
    Réponses: 19
    Dernier message: 21/10/2005, 17h32

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