none
Array of combobox possible sous VB6 mais comment sous VB9 ? RRS feed

  • Question

  •  

    Bonjour,

    Sous VB6, j'avais l'habitude de déclarer un tableau de Combobox et de l'utiliser:

    Dim i As Integer
    For i = 1 To 15
        Combo1(i).Clear
    Next i

    au lieu de :

    Combo1(0).Clear
    Combo1(1).Clear

    etc....

    mais sous VB9 (2008), comment faire
    en migrant un projet vb6, cela fonctionne car l'assistant de migration utilise la classe vb6 compatibility

    mais si je créé un nouveau projet VB9 comment puis-je faire ?

     

    mardi 29 avril 2008 10:42

Réponses

  • Bonjour,

     

    Sous .NET "pur" il n'y a pas d'équivalent direct des champs indicés de VB6.

    Il faut passer par un tableau de Combo :

     

    Code Snippet

    Dim tab As Combo()

    tab = new Combo() { combo1, combo2 }

     

    For i = 1 To tab.Length

         tab(i).Clear()

    Next i

     

    Une autre solution :

    Si vos contrôles sont nommé ainsi : comboX

    Vous pouvez y accéder ainsi :

     

    Code Snippet

    For i = 1 To tab.Length

    c = CType(this.Controls.Find("combo" + i.ToString(), True)(0), ComboBox)

    Next i

     

    Préférez la première solution qui permet un typage fort de votre code...

     

    Cordialement

     

     

     

     

    mardi 29 avril 2008 15:09
    Modérateur

Toutes les réponses

  • Bonjour,

     

    Sous .NET "pur" il n'y a pas d'équivalent direct des champs indicés de VB6.

    Il faut passer par un tableau de Combo :

     

    Code Snippet

    Dim tab As Combo()

    tab = new Combo() { combo1, combo2 }

     

    For i = 1 To tab.Length

         tab(i).Clear()

    Next i

     

    Une autre solution :

    Si vos contrôles sont nommé ainsi : comboX

    Vous pouvez y accéder ainsi :

     

    Code Snippet

    For i = 1 To tab.Length

    c = CType(this.Controls.Find("combo" + i.ToString(), True)(0), ComboBox)

    Next i

     

    Préférez la première solution qui permet un typage fort de votre code...

     

    Cordialement

     

     

     

     

    mardi 29 avril 2008 15:09
    Modérateur
  • Merci beaucoup pour cette réponse rapide.
    cordialement,

    mardi 29 avril 2008 16:57