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 :

problème index dans un tableau


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut problème index dans un tableau
    Bonjour, J'ai un souci sur l'index d'un de mes tableau.
    Je vous explique le fonctionnement de ma form: je check une checkbox et le control qui est lié a cette checkbox(par le tabindex) devient visible, je rentre ma valeur dans le control qui est apparu et je check un radiobutton pour definir la logique ("and" ou "or") et une fois que tout ceci est fait alors la je click sur un bouton et j'incrémente la ligne de mon tableau. Quand cela ai rentré une fois et que je décide de réitérer l'action une deuxième fois, j'ai cette erreur qui s'affiche :

    L'index se trouve en dehors des limites du tableau.
    Je vous met le code pour le check des checkboxs et l'apparitions des differents controles mais pas pour les insertions de valeurs, et l'incrementation de la ligne du tableau sur le click du bouton, si quelqu'un les veux qu'il me le demande.

    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
     Private Sub CheckBox22_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox22.CheckedChanged, CheckBox23.CheckedChanged, CheckBox24.CheckedChanged, CheckBox25.CheckedChanged, CheckBox26.CheckedChanged, CheckBox27.CheckedChanged, CheckBox28.CheckedChanged, CheckBox29.CheckedChanged, CheckBox30.CheckedChanged, CheckBox31.CheckedChanged, CheckBox32.CheckedChanged, CheckBox33.CheckedChanged, CheckBox34.CheckedChanged, CheckBox35.CheckedChanged, CheckBox36.CheckedChanged, CheckBox37.CheckedChanged, CheckBox38.CheckedChanged, CheckBox39.CheckedChanged, CheckBox40.CheckedChanged, CheckBox41.CheckedChanged, CheckBox42.CheckedChanged, CheckBox43.CheckedChanged
    
            Dim tx As Integer
            Dim ctl As Control
            Dim tex As Control
    
    
            For Each ctl In Me.pnlcheck3.Controls
                If TypeOf sender Is CheckBox And sender.checked = True Then
                    tx = sender.TabIndex + 1
                    For Each tex In Me.pnltex3.Controls
                        If TypeOf tex Is TextBox And tex.TabIndex = tx Then
                            tex.Enabled = True
                            critere(i, 0) = tex.Name //erreur se  trouve ici
                            controlselect = tex
                        End If
    
                    Next
    
                ElseIf TypeOf sender Is CheckBox And sender.checked = False Then
                        tx = sender.TabIndex + 1
                        For Each tex In Me.pnltex3.Controls
                            If TypeOf tex Is TextBox And tex.TabIndex = tx Then
                            tex.Enabled = False
                            End If
                        Next
    
                End If
            Next
    
    
        End Sub
    Merci d'avance

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Tu la dimensionne où ta table :

    Et le "i" s'incrémente comment ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Salut ,
    Alors mon tableau est dimensioné en global dans le public class et mon i s'incremente sur le click du bouton quand je valide le critère.

  4. #4
    Rédacteur
    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Billets dans le blog
    121
    Par défaut
    Citation Envoyé par kek's Voir le message
    Je vous met le code pour le check des checkboxs et l'apparitions des differents controles mais pas pour les insertions de valeurs, et l'incrementation de la ligne du tableau sur le click du bouton, si quelqu'un les veux qu'il me le demande.
    C'est drôle tu à une exception et tu ne veu pas poster la section qui generer l'exception .

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Voila lilroma je pense pas que sa t'aide vraiment mais bon je t'ai mis tout les code en liaison.

    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
     
    //Choisir la logique 
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
    
            If sender Is RadioButton1 Then
    
                critere(i, 2) = RadioButton1.Text
    
            ElseIf sender Is RadioButton2 Then
    
                critere(i, 2) = RadioButton2.Text
    
            End If
    
    
    
        End Sub
    
    //control dans lequel on va rentrer la valeur 
     Private Sub TextBox12_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged, TextBox4.TextChanged, TextBox5.TextChanged, TextBox6.TextChanged, TextBox7.TextChanged, TextBox8.TextChanged, TextBox9.TextChanged, TextBox10.TextChanged, TextBox11.TextChanged, TextBox12.TextChanged, TextBox13.TextChanged, TextBox14.TextChanged, TextBox15.TextChanged, TextBox16.TextChanged, TextBox17.TextChanged, TextBox18.TextChanged, TextBox19.TextChanged, TextBox20.TextChanged, TextBox21.TextChanged, TextBox22.TextChanged, TextBox23.TextChanged, TextBox24.TextChanged, TextBox25.TextChanged, TextBox26.TextChanged, TextBox27.TextChanged, TextBox28.TextChanged, TextBox29.TextChanged, TextBox30.TextChanged, TextBox31.TextChanged, TextBox32.TextChanged, TextBox33.TextChanged, TextBox34.TextChanged, TextBox35.TextChanged, TextBox36.TextChanged
    
            If TypeOf controlselect Is TextBox Then
    
                critere(i, 1) = controlselect.Text
    
            End If
    
    
        End Sub
    
    
    //control dans lequel on va rentrer la valeur
        Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged, DateTimePicker2.ValueChanged, DateTimePicker3.ValueChanged, DateTimePicker4.ValueChanged, DateTimePicker5.ValueChanged, DateTimePicker6.ValueChanged, DateTimePicker7.ValueChanged
    
            If TypeOf controlselect Is DateTimePicker Then
    
                critere(i, 1) = CType(controlselect, DateTimePicker).Value.Date.ToString
    
            End If
    
    
        End Sub
    
    
    //control dans lequel on va rentrer la valeur
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged, ComboBox2.SelectedValueChanged, ComboBox3.SelectedValueChanged, ComboBox4.SelectedValueChanged, ComboBox5.SelectedValueChanged, ComboBox6.SelectedValueChanged, ComboBox7.SelectedValueChanged, ComboBox8.SelectedValueChanged, ComboBox9.SelectedValueChanged, ComboBox10.SelectedValueChanged, ComboBox11.SelectedValueChanged, ComboBox12.SelectedValueChanged, ComboBox13.SelectedValueChanged
    
            If TypeOf controlselect Is ComboBox Then
    
                critere(i, 1) = CType(controlselect, ComboBox).SelectedItem
    
            End If
    
        End Sub
    
    //click pour valider le critère 
     Private Sub ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    
            i = i + 1
    
        End Sub

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Désolé pour les fautes au passage

  7. #7
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Bon on reprend, comment as-tu déclarer ta table, et tu as cette erreur au bout de combien de clicks ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    mon tableau est déclaré dans le public class de ma form et j'ai l'erreur aprés le premier click, lorsque je coche une autre checkbox.

  9. #9
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Tu le déclares comment, quelle dimension ?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Voilà comment je le déclare:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim critere(i, 2) As String
    Merci de m'aider

  11. #11
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    A mon avis ton problème viens de là :

    Tu dois déclarer avant :

    et ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim critere(i, 2) As String
    Donc i as integer par defaut te donne i = 0 donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim critere(i, 2) As String
    équivaut à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim critere(0, 2) As String
    Sur le premier checkboxchanged, tu remplit donc critere(0,0), qui existe.

    Puis tu incrémente quelquepart ton i, je suppose i = i + 1

    donc i passe à 1 mais ta table reste de dimension (0,2), donc quand tu recheck une checkbox, il essaie de mettre la valeur dans critere(1,0), qui n'existe pas --> erreur.

    Conclusion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i = i + 1
    Redim Preserve critere(i,2)
    devrait résoudre ton problème.


  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    J'ai fais ce que tu m'as dit mais j'ai cette erreur lorsque je redimensionne mon tableau aprés l'incrémentation :

    'ReDim' ne peut changer que la dimension la plus à droite.
    Mais petit à petit j'avance ...

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    C'est bon methylene j'ai résolu le problème enfin tu m'as beaucoup aidé Merci
    La solution c'est :
    Merci à tous

  14. #14
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    C'es vrai j'avais oublié (ce n'est pas le Redim mais le Preserve), ben interchange tes deux dimensions a chaque fois que tu utilise critère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    critere(i,2) -- > critere(2,i)
    etc ...

    PS : pouquoi as-tu mis ton sujet sur ?

  15. #15
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Citation Envoyé par kek's Voir le message
    C'est bon methylene j'ai résolu le problème enfin tu m'as beaucoup aidé Merci
    La solution c'est :
    Redim critere(i, 2)

    Merci à tous
    Non ton problème n'est pas résolu, du moins le prmeier est résolu mais tu en as créé un nouveau, car en faisant Redim tu redimensionne ton tableau, mais les valeurs dedans ne sont pas sauvegardées.

    Dimension critere(i,2) dimension 0 et 2
    critere (0,0) = chapeau

    i = i + 1
    Redim critere(i,2)
    Dimension critere(i,2) dimension 1 et 2
    critere (0,0) = Nothing <---- Problème
    critere (1,0) = fraise

    Donc garde Redim Preserve mais interchange tes 2 dimensions.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    ok, je vais tester cela jte dit tout ca bientot
    Merci

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Je pense à un truc si j'inverse mes dimension j'aurai un nombre de lignes fixe et un nombre de colonnes qui s'incremente non?

  18. #18
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Je ne vois pas le problème :/

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    genre je doit faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim critere(2,i) as string 
    redim perverse critere(2,i)
    ça ????

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Problème index dans formulaire
    Par luminium dans le forum IHM
    Réponses: 4
    Dernier message: 07/04/2010, 03h26
  2. Problème index dans Listview
    Par tenebriox dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/07/2009, 14h47
  3. Recherche d'un index dans un tableau
    Par Clydopathe dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/04/2009, 15h05
  4. problème couleur dans un tableau Word
    Par marti dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/01/2008, 13h21
  5. [VBA] Obtenir l'index dans un tableau à partir de sa valeur.
    Par Julien Dufour dans le forum Access
    Réponses: 2
    Dernier message: 28/07/2006, 11h03

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