Je crée un générateur de formulaire qui crée plusieurs onglets et sur chaque onglet placera un DataGridView lié à un ensemble de données dans un tableau de données:Comment gérer les événements d'outils programatically créés dans une boucle
For Each table As DataTable In datasetInput(i).Tables
If arr_tables(i)(j).Equals(table.TableName) Then
tablename = table.TableName
Dim grid As New DataGridView
grid.DataSource = table
grid.Name = j
grid.Location = place
grid.Size = New System.Drawing.Size(734, 150)
TabPage.TabPages(i).Controls.Add(grid)
End If
Next
Notez que cette boucle est imbriquée dans une autre boucle qui gère chaque onglet du formulaire. arr_tables est un tableau dentelé qui gère les tables de l'ensemble de données que je veux parce que je ne veux pas tirer chaque datatable dans un DGV.
Maintenant, ce que je dois faire est de formater n'importe quelle cellule qui tombe dans la colonne du nom "Equation". Pour toutes les cellules de la colonne "Equation", je veux être une cellule déroulante avec quelques options différentes. Deuxièmement, comment puis-je gérer un événement de clic de cellule? Dites n'importe quelle cellule qui tombe dans le nom de la colonne "Entrée" Je veux fournir un MessageBox.
Normalement, cela ne poserait aucun problème si les DataGridViews n'étaient pas créés dans une boucle. Mais parce qu'ils sont ils se perdent dans le code et je ne sais pas comment les référencer.
Merci!
Ils ne sont pas perdus. Vous les mettez dans la collection de contrôles de TabPages et c'est là que vous pouvez les trouver. Vous pouvez utiliser 'AddHandler pour connecter des événements à la variable d'objet' grid' avant de le "perdre". – Plutonix
Ohhhhh. Donc, je peux créer le gestionnaire dans la boucle pour chaque grille? Derp, je ne me sens pas stupide maintenant. Merci!!! –
Peut-être que je ne comprends pas quelque chose, mais si vous changez un Nom en 'grid.Name = "dgw" & j' (les noms ne peuvent pas commencer par des nombres, je pense), alors vous devriez les trouver avec leurs noms , c'est-à-dire dgw1, dgw2, dgw3, ... dans TabPage.Tabpages (i) .Controls. –