我將單個上下文菜單附加到多個文本框。所以,我需要獲取用於顯示上下文菜單的控件名稱/引用。下面VB.Net獲取用於顯示上下文菜單條的控件
是我的上下文菜單中的樣本圖像:
下面是綠色的代碼標記爲「粘貼」項單擊事件:
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
它工作得很好。
,但下面是我的紅色代碼標記爲「頁數」項單擊事件:
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)
但上述拋出以下錯誤:
Unable to cast object of type 'System.Windows.Forms.ToolStripDropDownMenu' to type 'System.Windows.Forms.ContextMenuStrip'.
這裏是錯誤的截圖:
所以,我無法弄清楚什麼是問題。
任何幫助,將不勝感激
你不能只是釘在另一個'.Owner',因爲你知道這是一個嵌套的菜單嗎? – DonBoitnott
請參閱此主題:http://stackoverflow.com/questions/12094528/contextmenustrip-owner-property-null-when-retrieving-from-nested-toolstripmenuit。我將在下面給出vb.net的答案,稍作改動。 –