Eu tenho um ContextMenuStrip chamado: DGVContextStrip
sua exibido quando o direito de usuário clica no meu datagridview.
Que MenuStrip contém um item chamado AddUpgradeTagToolStripMenuItem
que contém sub-itens(dropdownitems), estas sub-itens são nomeados com um número no nome.
por exemplo: Add1ToolStripMenuItem
, Add2ToolStripMenuItem
, Add3ToolStripMenuItem
.... e assim por diante, até Add25ToolStripMenuItem
.
Quando um utilizador direito de cliques, no Datagridview, eu quero verificar se uma célula contém o número "1", em seguida, se faz a Add1ToolStripItem.checked = true
Eu percebi que eu iria loop através de números de 1 a 25, e em cada ciclo verifique se a célula que contém a 1 e se for verdade, alterar o valor marcado o item de menu. algo como...
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
mas isso não funciona, iv, vi exemplos on-line que usa o controle.método de localização, mas eu não podia ter que trabalhar para meu uso. por exemplo
Dim ControlName As String = "Add" & i & "ToolStripMenuItem"
CType(Me.Controls.Find(ControlName, True), ToolStripMenuItem).Checked = True
alguma idéia de como eu chegar a este trabalho? Eu sei que eu poderia ter usado 25 se, em seguida, else, mas eu meio que queria manter o código muito mais simples.