Partage
  • Partager sur Facebook
  • Partager sur Twitter

Listbox

Listbox

    16 novembre 2018 à 17:26:07

    Public Class Form1
        Inherits System.Windows.Forms.Form
        Dim a, b As Integer 
       Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            End
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Try
                a = CInt(Me.TextBox1.Text)
                If Me.RadioButton1.Checked Then
                    Me.ListBox1.Items.Add(Me.TextBox1.Text)
                    Me.ListBox2.Items.Add("0")
                    col1.Add("0")
                    col.Add(Me.TextBox1.Text)
                Else
                    Me.ListBox2.Items.Add(Me.TextBox1.Text)
                    Me.ListBox1.Items.Add("0")
                    col.Add("0")
                    col1.Add(Me.TextBox1.Text)
                End If
                Dim totalc As Integer
                For i As Integer = 1 To col.Count
                    a = col.Item(i)
                    totalc = totalc + CInt(a)
                Next
                Me.Label7.Text = totalc
                Dim totald As Integer
                For i As Integer = 1 To col1.Count
                    a = col1.Item(i)
                    totald = totald + CInt(a)
                Next
                Me.Label8.Text = totald
                Me.Label9.Text = totalc - totald
            Catch ex As Exception
                MsgBox("données non valide")
            End Try
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.RadioButton1.Checked = True
            Me.Label7.Text = 0
            Me.Label8.Text = 0
            Me.Label9.Text = 0
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Try
                Me.ListBox1.Items.Clear()
                a = col.Count
                col.Remove(a)
                For i As Integer = 1 To col.Count
                    Me.ListBox1.Items.Add(col.Item(i))
                Next
                Me.ListBox2.Items.Clear()
                a = col1.Count
                col1.Remove(a)
                For i As Integer = 1 To col1.Count
                    Me.ListBox2.Items.Add(col1.Item(i))
                Next
                Dim totalc As Integer
                For i As Integer = 1 To col.Count
                    a = col.Item(i)
                    totalc = totalc + CInt(a)
                Next
                Me.Label7.Text = totalc
                Dim totald As Integer
                For i As Integer = 1 To col1.Count
                    a = col1.Item(i)
                    totald = totald + CInt(a)
                Next
                Me.Label8.Text = totald
                Me.Label9.Text = totalc - totald
            Catch ex As Exception
                MsgBox("la liste est vide")
            End Try
        End Sub
    End Class

    Bonjour jefais un exercice dont je vous ai mis le corrigé ci dessus

    on medemande de saisir une valeur dans une text box puis avec le bouton 

    1 je mets cette somme soit dans la liste credit soit dans la liste débit J’aurais sélectionné en appuyant sur les deux boutons crédit débit puis ensuite on appuyant sur le bouton deux on vous demande de retirer la dernière valeur rentrée soit au crédit soit en débit

    Le code du bouton 1 j’ai réussi à le faire sans faire exactement Ce qui est marqué au-dessus comme code  pour le bouton 2 Je ne sais d’ailleurs pas si il faut enlever les dernières entrées de la liste de crédit et de la liste débitou simplement la dernière entrée de La liste des débits où la liste de crédit selon ce que j’ai fait avant et là je coince

     Quelqu un  peut-il m’expliquer a supposé que le code dû corrigé soit bon

    a l’avance  merci cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      16 novembre 2018 à 19:00:06

      Il sort d'où ce corrigé ?

      Parce que je sais que j'ai la critique facile mais là, c'est quand même très très mauvais.

      Il est simpliste en n'utilisant pas de fonctionnalités "avancées" mais pour le reste, c'en est même du foutage de gueule.

      Il manque des informations comme le type de "col" et "col1" pour dire s'il est faux ou correct, mais même s'il est correct, ça serait immaintenable.

      >Le code du bouton 1 j’ai réussi à le faire sans faire exactement Ce qui est marqué

      Ce code est si foireux qu'il y a des bonnes chances que le vôtre soit meilleur.

      >le bouton 2 Je ne sais ... enlever les dernières entrées de la liste de crédit et de la liste débit ou simplement la dernière entrée de La liste des débits où la liste de crédit

      Le français employé dans l'énoncé "de retirer la dernière valeur rentrée soit au crédit soit en débit" est très ambigu.

      Pour moi, c'est retirer la dernière valeur entrée, qu'elle est été mise dans les crédits ou les débits, cela donne aussi un peu plus de travail de conception. Cela pourrait aussi être interpréter comme la dernière valeur dans la colonne qui est indiqué par le jeu de radioBouton qui pilote aussi le "bouton 1" pour le choix de la colonne. C'est plus simple et plus cohérent avec l'IHM pour le moins simpliste et peu ergonomique de l'exercice.

      Dans tous les cas, la correction "triche" en ajoutant systématiquement une valeur aux 2 colonnes.

      Ça sent quand même le contournement très peu élégant d'une difficulté.

      Si vous avez une copie d'écran du résultat attendu, cela informerait ou confirmerait mes soupçons.

      Mais, de toute façon, n'utilisez pas cette correction comme exemple de manière de codé, c'est une horreur ce code.

      Exemples :

      Il est fondamental de correctement nommer ces variables, méthodes etc...

      Ici, c'est une caricature, tout ce qu'il ne faut pas faire avec des noms totalement "à la con"

      -"a" (pour la somme soit de débit soit des crédits, autre conseil, une variable un usage)

      -ButtonX_... (non, parce que mettre le nom de l'action du bouton, et par la même donner un nom au bouton correspondant à son action et pas à son ordre de largage dans le Designer, c'est pour les faibles ? putain)

      -RadioButtonX (idem)

      -LabelX (idem)

      -ListBoxX et colX (idem, mais encore plus "drôle", 'ListBox1' est associé à 'col' et 'ListBox2' à 'col1', WTF!!!)

      -totalc et totald (et pourquoi pas total1 et total2 tant qu'on y est, NON creditTotal et debitTotal)

      Du code mort à la pelle.

      - le champ "b" du formulaire, c'est pour la déco ?

      - Button3_Click (idem, sauf un "End" qu'on c'est pas c'est quoi)

      - Form1_Load (que du code qui n'a rien à faire là, mais bien plus dans le Designer Graphique)

      Usage d'un champ 'a' au niveau du formulaire, complètement injustifié mais aussi injustifiable car cela permet de l'utiliser à plein de choses différentes alors qu'il ne faut pas. Chaque usage de ce champ aurait justifié une variable locale à la place. Comme chaque variable n'aura qu'un usage déterminé, le code sera plus simple et plus lisible que ce 'a' à la con.

      Usage de "Me" complètement injustifié, vous pouvez tous les virez, c'est du VB.NET pas du VBA ou du JavaScript déguisé.

      Virez tous ces Try/Catch, c'est pas comme ça qu'on s'en sert. Pour les problèmes de conversion de chaine de caractère en nombre "TryParse": https://docs.microsoft.com/fr-fr/dotnet/api/system.int32.tryparse?view=netframework-4.7.2

      Ligne 11 à 34, code fait à coup de copier-coller, merci de penser à factoriser le code, SVP.

      En plus c'est du casse-gueule car c'est du faux copier-coller en changent l'ordre des lignes.

      C'est une astuce à 2 balles de mettre "0" dans l'une des colonnes. Si c'est pour l'affichage, " " aurait été bien plus esthétique et aussi simple à gérer.

      Ligne 50, je ne connais pas le type de "col" mais soit le code est faux ou son type est super étrange.

      'a' reçoit, à la ligne 50, le nombre d'élément dans la liste des Crédist (merci au 'c' de 'totalc' et à mon cerveau pour cette inférence, bordel de putain de nommage de MERDE)

      Ligne 51, c'est où la "magie" opère, soit le type de 'col' est super étrange et, au lieu de fonctionner comme une List .NET standard, qui va supprimer l'élément ayant la même valeur que 'a', sic!!, il chercherait à supprimer une valeur correspondant au nombre d'élément; il fonctionnerait comme un "RemoveAt(a-1)" pour supprimer la dernière valeur de la liste 'col'. (Bon, pour moi, c'est de la connerie et il fait de la grosse merde)

      Ligne 49, 52-54, au lieu de juste supprimer le dernier élément de ListBox1.Items, il supprime tout et recrée toutes les valeurs (mais bon, quand on voit comment il le supprime de 'col', c'est peut-être mieux de prendre la méthode bourrin).

      Ligne 55 à 60, même chose que les lignes 49 à 54, mais pour la liste des débits (merci encore pour ce super nommage de variable).

      Ligne 61 à 72, un putain de copier-coller des lignes 22 à 34 qui calcule les totaux, truc qui évidemment aurait du être factorisé dans une simple méthode.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        16 novembre 2018 à 19:43:25

        Merci de votre réponse 

        désolé pour votre exaspération

        je ne veux pas jouer les cafteurs

        je l’ai trouvésur internet 

        pouvez vous me dire l’astuce pour arriver à enlever la dernière valeur entrée je n’arrive pas à trouver comment faire

        al’avance merci

        cordialement

        • Partager sur Facebook
        • Partager sur Twitter
          19 novembre 2018 à 8:38:24

          L'astuce du "corrigé", c'est de mettre une valeur dans chacun des listes, tout le temps.

          Donc, lui, il devrait pas trop s'emmerder, il vire un élément dans chaque liste.

          Vous, si vous n'avez pas fait "l'astuce" de mettre systématiquement une valeur dans chacune des listes, vous devez ruser un peu.

          Vous pouvez, par exemple, travailler avec une liste supplémentaire de booléen.

          Quand vous insérez une valeur dans la colonne "Crédit" mettez un "True" dans la liste.

          Quand vous insérez une valeur dans la colonne "Débit" mettez un "False" dans la liste.

          Quand on vous demande, via le "2ème bouton", de supprimer le dernier élément inséré, vous regardez le denier élément de la liste de booléen et vous savez dans quelle liste (Crédit ou Débit) vous devez supprimer l'élément, et n'oubliez pas de supprimer aussi le dernier élément de la liste de booléen.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Listbox

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown