J'ai un ContextMenuStrip appelé: DGVContextStrip
son affiche lorsque l'utilisateur clique droit sur mon datagridview.
Que MenuStrip contient un élément appelé AddUpgradeTagToolStripMenuItem
qui contient des sous-éléments(dropdownitems), ces sous-éléments sont tous nommés avec un numéro dans leur nom.
par exemple: Add1ToolStripMenuItem
, Add2ToolStripMenuItem
, Add3ToolStripMenuItem
.... et ainsi de suite jusqu'à Add25ToolStripMenuItem
.
Lorsqu'un utilisateur clique droit sur le Datagridview, je veux vérifier si une cellule contient le nombre "1" alors si il ne font Add1ToolStripItem.checked = true
J'ai pensé que je voudrais faire une boucle par les numéros de 1 à 25, et dans chaque boucle de vérifier si la cellule contient 1 et si c'est vrai, changer la valeur de l'élément de menu. quelque chose comme...
For i = 1 to 25
If DataGridView1.SelectedRows(0).Cells("Text_Field").Value.ToString.Contains(i) then
CType("Add" & i & "ToolStripMenuItem", ToolStripMenuItem).Checked = True
Next
mais cela ne fonctionne pas, iv vu des exemples en ligne qui utilisent le contrôle.trouver la méthode, mais je ne pouvais pas obtenir que cela fonctionne pour mon utilisation. par exemple
Dim ControlName As String = "Add" & i & "ToolStripMenuItem"
CType(Me.Controls.Find(ControlName, True), ToolStripMenuItem).Checked = True
des idées comment je obtenir que cela fonctionne? Je me rends compte que je pouvais avoir utilisé 25 if then else, mais je voulais garder le code beaucoup plus lisible.