2010-10-29 4 views
2

Salut à tous :) Je veux juste demander sur la façon de faire un tableau de boutons en vb .net 2005. Il semble très différent dans VB6 « coz en VB6 vous suffit pour ajouter un index sur sa propriété mais dans vb.net il n'y a pas de propriété d'index. Peut-il être fait en concevant dans le formulaire juste comme copier et coller sur le formulaire en vb6?Comment faire des tableaux de bouton vb .net 2005

Répondre

3

Par défaut, VB.NET n'utilise pas de tableaux de contrôle. C'est parce que les événements sont gérés différemment de VB6. Si je me souviens bien, voici comment écrire du code pour un tableau de contrôle, tel qu'un tableau de CommandButton.

Private Sub Buttons_Click(index As Integer) 
    Select Case index 
     Case 1 
      'write some code here' 
    End Select 
End Sub 

Le compilateur VB6 alors analyser le nom de chaque sous dans votre dossier et de les affecter à l'événement du contrôle approprié. Ainsi, le sous-programme ci-dessus s'attacherait à chaque bouton de votre formulaire appelé Boutons et vous pourriez déterminer le bouton sur lequel vous avez cliqué en vérifiant le paramètre d'index.

Dans VB.NET, les événements sont "attachés" aux contrôles différemment.
Ceci est fait manuellement en utilisant l'instruction AddHandler ou automatiquement en utilisant le mot-clé Handles.

Lorsque vous affectez des événements aux contrôles à partir du Concepteur de fiches, l'EDI utilise le mot clé Handles pour connecter chacun des contrôles à leurs gestionnaires d'événements. Ainsi, vous finissez avec quelque chose de ce genre:

Private Sub Button_Click(sender As Object, e As System.EventArgs) Handles Button.Click 
    'your code goes here' 
End Sub 

Avec cette méthode, vous n'avez pas besoin d'un tableau de contrôle, comme dans VB6. Vous pouvez simplement brancher plus boutons de clics ou pour cette matière, le clic de tout contrôle en ajoutant à la fin de la déclaration comme ceci:

Private Sub Button_Click(sender As Object, e As System.EventArgs) Handles _ 
    Button1.Click, Button2.Click, Button3.Click, ListBox.Click 
    'your code goes here' 
End Sub 

Comme on peut le voir, vous ajoutez juste le nom du contrôle (par exemple, Button2), puis le suivre avec .Click afin de «connecter» l'événement click du contrôle au sous-programme.

La question se pose alors, comment trouvez-vous que le contrôle (bouton) a été cliqué?
La réponse est assez simple, tester le paramètre sender.

Dans .NET, en général, le contrôle qui soulève un événement se trouve toujours dans le paramètre sender.Ainsi, la construction sur le code ci-dessus, nous avons quelque chose comme ceci:

Private Sub Button_Click(sender As Object, e As System.EventArgs) Handles _ 
    Button1.Click, Button2.Click, Button3.Click, ListBox.Click 

    If sender Is Button1 Then 
     'do something' 
    ElseIf sender Is Button2 Then 
     'do another thing' 
    ElseIf sender Is Button3 Then 
     'do yet another thing' 
    Else 
     'do something different for the ListBox' 
    End If 
End Sub 

Si vous avez suivi jusqu'ici et compris, vous allez commencer à comprendre pourquoi nous n'utiliser des tableaux de contrôle dans VB.NET ou d'ailleurs, .NET en général plus.

Prévenez-moi si vous avez d'autres questions. À votre santé!

+0

ouah! mon problème a été répondu :) merci à vous les gars .. –

+0

@hohntotetwoo: Super d'avoir été d'une aide pour vous. Maintenant, continuez et acceptez une réponse (cliquez sur la coche à côté d'une réponse). Sinon, votez pour les deux réponses. –

1

Contrairement à VB6, .NET vous permet de créer des réseaux normaux de contrôle donc il n'y a pas besoin pour les collections de contrôle de VB6.

il suffit d'utiliser un tableau ou un List(Of Control), le remplir avec des commandes et presto !, vous avez terminé.

Utilisez AddHandler si vous souhaitez ajouter des gestionnaires d'événements à ces contrôles.

Le concepteur Windows Forms ne prend plus en charge les tableaux de contrôle (contrairement au concepteur de forme VB6') - ce qui est logique: Si vous avez un contrôle tableau, c'est intrinsèquement dynamique donc il ne peut pas être véritablement créé à la conception temps. Sa taille augmente et diminue dynamiquement au moment de l'exécution en fonction du nombre réel de contrôles nécessaires.

+0

En outre, il existe une collection de contrôles dans le formulaire (me.Controls) qui a une liste hiérarchique de tous les contrôles sur le formulaire en cours. – Wade73