0

在我的应用程序中,我有 3 个 RichTextboxes,我只创建了一个 ContextMenuStrip,因为我不喜欢将相同上下文菜单的相同代码和所有上下文菜单选项复制 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

我如何以动态方式处理该子中其他richtextboxes的clear方法?

(我不想同时清除3个richtextbox的文本,我需要知道哪个RichTextBox打开了Contextmenu只清除那个RichTextBox中的文本)

我试图找到有关哪个 RichTextBox 调用 contextmenu 来处理仅为该 RichTextBox 的 contextmenu 过程的必要信息,但我在 contextmenu CLICK 事件子的 sender 或“e”变量中找到了任何内容。

4

1 回答 1

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
于 2013-09-28T09:06:41.003 回答