在我的应用程序中,我有3个RichTextboxes,我只创建了一个ContextMenuStrip,因为我不喜欢将相同的contextmenu和所有上下文菜单选项的相同代码重复3次以与其他2个Richs一起使用,问题是我不知道如何为三个RichTextBox使用相同的ContextMenu。
例如,ContextMenuStrip的一个选项是“ 清除文本 ”,然后在程序中我需要指定RichTextbox对象名来清除文本:
Private Sub MenuItem_Clear_Text_Click(sender As Object, e As EventArgs) _
Handles MenuItem_Clear_Text.Click
RichTextBox_Affix.Clear()
End Sub
我如何以动态方式处理该子组中其他richtextbox的clear方法?
(我不想同时清除3个richtextbox的文本,我需要知道哪个RichTextBox打开了Contextmenu来清除只有那个RichTextBox的文本)
我试图找到有关哪个RichTextBox称为contextmenu的必要信息来处理仅用于该RichTextBox的contextmenu过程,但我在发件人中找到了任何内容,或者在contextmenu CLICK事件子中找到了“e”变量。< / p>
答案 0 :(得分:0)
您可以从给定项目中获取ContextMenuStrip
,并从中获取相关控件(RichTextBox
)。示例代码:
Private Sub MenuItem_Clear_Text_Click(sender As Object, e As EventArgs) _
Handles MenuItem_Clear_Text.Click
Dim curContextMenu As ContextMenuStrip = DirectCast(DirectCast(sender, ToolStripItem).Owner, ContextMenuStrip)
Dim curRTB As RichTextBox = DirectCast(curContextMenu.SourceControl, RichTextBox)
curRTB.Clear()
End Sub