Ho un ContextMenuStrip chiamato: DGVContextStrip
visualizzato quando l'utente facendo clic destro sul mio datagridview.
Che MenuStrip contiene un elemento chiamato AddUpgradeTagToolStripMenuItem
che contiene gli elementi sub(dropdownitems), questi sub elementi sono tutti chiamato con un numero in loro nome.
ad esempio: Add1ToolStripMenuItem
, Add2ToolStripMenuItem
, Add3ToolStripMenuItem
.... e così via fino a quando Add25ToolStripMenuItem
.
Quando un utente facendo clic destro sul Datagridview, voglio controllare se una cella contiene il numero "1", quindi se lo fa fare Add1ToolStripItem.checked = true
Ho pensato che sarebbe loop attraverso i numeri da 1 a 25, e in ogni ciclo di verificare se la cella contiene 1 e se è vero, modificare il valore selezionato della voce di menu. qualcosa di simile...
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
ma questo non funziona, iv visto esempi online che utilizzano il controllo.metodo di ricerca ma non ho potuto ottenere che lavorare per il mio uso. per esempio
Dim ControlName As String = "Add" & i & "ToolStripMenuItem"
CType(Me.Controls.Find(ControlName, True), ToolStripMenuItem).Checked = True
tutte le idee su come ottenere questo lavoro? Mi rendo conto che avrei potuto usare 25 istruzioni if then else, ma ho voluto mantenere il codice pulito.