none
probleme de item sur listbox array RRS feed

  • Question

  • bonjour

    déjà un grand merci à tous car grâce à vos réponses pertinentes je suis arrivé a créer ce code qui me permet de pouvoir remplir les différents listbox

     par contre j’ai du faire une erreur car je peux écrire dans chaque liste fox et puis si je veux ajouter un item à n'importe quel autre cela ne produit rien

     je vous met la copie de l’écran  et le code

     merci qui peut me dire où j’ai mal fait

    voici le code

    Public Class Form1
        Dim listentree As New ArrayList()
        Dim listeplat As New ArrayList()
        Dim listdessert As New ArrayList()
    
        'Ajoute un élément dans la liste
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'afficher le textbox  en fonction du menu
            If textbox1_menus.Text = "entree" Then
                listentree.Add(TextBox2_entree.Text)
                TextBox2_entree.Clear()
                ListBox1_entrees.DataSource = listentree.ToArray().ToList()
    
            ElseIf textbox1_menus.Text = "plat" Then
                listeplat.Add(TextBox3_plat.Text)
                TextBox3_plat.Clear()
                ListBox2_plat.DataSource = listeplat.ToArray().ToList()
    
            ElseIf textbox1_menus.Text = "dessert" Then
                listdessert.Add(TextBox4_dessert.Text)
                TextBox4_dessert.Clear()
                ListBox3_dessert.DataSource = listdessert.ToArray().ToList()
    
            End If
    
        End Sub
    
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            textbox1_menus.Visible = False
            TextBox2_entree.Visible = False
            TextBox3_plat.Visible = False
            TextBox4_dessert.Visible = False
            Label5_menu.Visible = False
            Label6_ma_recette.Visible = False
            Button1.Visible = False
            Button2.Visible = False
        End Sub
    
        Private Sub Label1_creation_Click(sender As Object, e As EventArgs) Handles Label1_creation.Click
            Label5_menu.Visible = True
            textbox1_menus.Visible = True
            Button1.Visible = True
            Button2.Visible = True
        End Sub
    
    
        Private Sub textbox1_menus_TextChanged(sender As Object, e As EventArgs) Handles textbox1_menus.TextChanged
            If textbox1_menus.Text = "entree" Then
                TextBox2_entree.Visible = True
                TextBox2_entree.Focus()
                Label6_ma_recette.Visible = True
            ElseIf textbox1_menus.Text = "plat" Then
                TextBox2_entree.Visible = False
                TextBox3_plat.Visible = True
                TextBox3_plat.Focus()
                Label6_ma_recette.Visible = True
                TextBox3_plat.Location = New Point(158, 381)
            ElseIf textbox1_menus.Text = "dessert" Then
                TextBox4_dessert.Visible = True
                Label6_ma_recette.Visible = True
                TextBox4_dessert.Focus()
                TextBox2_entree.Visible = False
                TextBox3_plat.Visible = False
                TextBox4_dessert.Location = New Point(158, 381)
            End If
        End Sub
    End Class
    

    voici la copie d'écran au moment du blocage

    lundi 1 août 2016 09:44

Réponses

  • L'utilisation d'un TextBox pour la classification de la recette est peu pratique... les typo peuvent rendre l'application particulière frustrante, car j'écrirai "Entrée" par exemple.

    Utilisez plutôt un GroupBox avec des RadioButton comme ceci:

    et dans le code de votre bouton pour Ajouter une Recette mettez:

            If rbType_Entree.Checked = True Then
                'Process une nouvelle Entree
            ElseIf rbType_Plat.Checked = True Then
                'Process un plat
            ElseIf rbType_Dessert.Checked = True Then
                'Process Dessert
            Else
                'Rien n'est sélectionné
            End If

    • Marqué comme réponse SIMONGEORGES mardi 2 août 2016 10:30
    mardi 2 août 2016 08:53
  • Bonjour SIMONGEORGES,

    A part de la solution proposée par Cyrille, je voudrais attirer votre attention sur le fait que les deux autres zones de texte doivent être invisibles pendant chaque vérification de la propriété Text :

    Private Sub TextBox1_menus_TextChanged(sender As Object, e As EventArgs) Handles TextBox1_menus.TextChanged
            If TextBox1_menus.Text = "entree" Then        'ou selon la propriété Checked des RadioButtons proposés par Cyrille
                TextBox3_plat.Visible = False
                'si vous ajoutez une entrée supplémentaire, les TextBox3 et TextBox4 doivent être invisibles
                TextBox4_dessert.Visible = False       
                TextBox2_entree.Visible = True
                TextBox2_entree.Focus()
                Label6_ma_recette.Visible = True
            ElseIf TextBox1_menus.Text = "plat" Then
                TextBox2_entree.Visible = False
                TextBox4_dessert.Visible = False         'la même condition s’applique pour TextBox4 ici
                TextBox3_plat.Visible = True
                TextBox3_plat.Focus()
                Label6_ma_recette.Visible = True
                TextBox3_plat.Location = New Point(158, 381)
            ElseIf TextBox1_menus.Text = "dessert" Then
                TextBox4_dessert.Visible = True
                Label6_ma_recette.Visible = True
                TextBox4_dessert.Focus()
                TextBox2_entree.Visible = False
                TextBox3_plat.Visible = False
                TextBox4_dessert.Location = New Point(158, 381)
            End If
        End Sub

    Je vous remercie par avance de votre retour.

    Cordialement,
    Dimitar

    mardi 2 août 2016 09:28
    Modérateur

Toutes les réponses

  • L'utilisation d'un TextBox pour la classification de la recette est peu pratique... les typo peuvent rendre l'application particulière frustrante, car j'écrirai "Entrée" par exemple.

    Utilisez plutôt un GroupBox avec des RadioButton comme ceci:

    et dans le code de votre bouton pour Ajouter une Recette mettez:

            If rbType_Entree.Checked = True Then
                'Process une nouvelle Entree
            ElseIf rbType_Plat.Checked = True Then
                'Process un plat
            ElseIf rbType_Dessert.Checked = True Then
                'Process Dessert
            Else
                'Rien n'est sélectionné
            End If

    • Marqué comme réponse SIMONGEORGES mardi 2 août 2016 10:30
    mardi 2 août 2016 08:53
  • Bonjour SIMONGEORGES,

    A part de la solution proposée par Cyrille, je voudrais attirer votre attention sur le fait que les deux autres zones de texte doivent être invisibles pendant chaque vérification de la propriété Text :

    Private Sub TextBox1_menus_TextChanged(sender As Object, e As EventArgs) Handles TextBox1_menus.TextChanged
            If TextBox1_menus.Text = "entree" Then        'ou selon la propriété Checked des RadioButtons proposés par Cyrille
                TextBox3_plat.Visible = False
                'si vous ajoutez une entrée supplémentaire, les TextBox3 et TextBox4 doivent être invisibles
                TextBox4_dessert.Visible = False       
                TextBox2_entree.Visible = True
                TextBox2_entree.Focus()
                Label6_ma_recette.Visible = True
            ElseIf TextBox1_menus.Text = "plat" Then
                TextBox2_entree.Visible = False
                TextBox4_dessert.Visible = False         'la même condition s’applique pour TextBox4 ici
                TextBox3_plat.Visible = True
                TextBox3_plat.Focus()
                Label6_ma_recette.Visible = True
                TextBox3_plat.Location = New Point(158, 381)
            ElseIf TextBox1_menus.Text = "dessert" Then
                TextBox4_dessert.Visible = True
                Label6_ma_recette.Visible = True
                TextBox4_dessert.Focus()
                TextBox2_entree.Visible = False
                TextBox3_plat.Visible = False
                TextBox4_dessert.Location = New Point(158, 381)
            End If
        End Sub

    Je vous remercie par avance de votre retour.

    Cordialement,
    Dimitar

    mardi 2 août 2016 09:28
    Modérateur