VB.Net Obter o controle que é usado para mostrar a faixa de contexto
Estou anexando um único menu de contexto a várias caixas de texto. Então, eu preciso obter o nome / referência de controle usado para mostrar o menu de contexto.
abaixo está a imagem de amostra do meu menu de contexto:
Abaixo está o código do evento de clique em item "colar" marcado com verde:
Dim objTSMI As ToolStripMenuItem
Dim objCMS As ContextMenuStrip
Dim objTxtBox As System.Windows.Forms.TextBox
objTSMI = CType(sender, ToolStripMenuItem)
objCMS = CType(objTSMI.Owner, ContextMenuStrip)
objTxtBox = CType(objCMS.SourceControl, System.Windows.Forms.TextBox)
If Clipboard.ContainsText(TextDataFormat.Text) = True Then
objTxtBox.SelectedText = Clipboard.GetText(TextDataFormat.Text)
End If
funciona muito bem.
mas abaixo está o meu código para o evento marcado com clique em item "Contagem de páginas" em vermelho:
Dim objTSMI As ToolStripMenuItem
Dim objCMS As ContextMenuStrip
Dim objTxtBox As System.Windows.Forms.TextBox
objTSMI = CType(sender, ToolStripMenuItem)
objCMS = CType(objTSMI.Owner, ContextMenuStrip)
objTxtBox = CType(objCMS.SourceControl, System.Windows.Forms.TextBox)
MessageBox.Show(objTxtBox.Name)
mas acima lança o seguinte erro:
Unable to cast object of type 'System.Windows.Forms.ToolStripDropDownMenu' to type 'System.Windows.Forms.ContextMenuStrip'.
Aqui está a captura de tela do erro:
então, não consigo descobrir qual é o problema.
qualquer ajuda seria muito apreciada