2个问题:
在谷歌浏览器中,如果您选择一个单词(例如problem
),然后右键单击此选定文本,则上下文菜单会显示两个项目1.复制2.搜索谷歌搜索problem
3.检查元素。上下文菜单与整个窗口的上下文菜单不同。如何为选定的文本提供此单独的上下文菜单。
我要完成的确切任务是:我有一个文本框(在winforms中)。现在,当用户rt点击时,上下文菜单只显示paste
。如果文本框已填充有一些文本,用户选择一些文本,然后右键单击所选文本,它应显示上下文菜单
项目:复制,剪切,粘贴,全选。怎么样?。
对于复制文本,用户有3个选项:
所有这些都做同样的事情,将选定的数据复制到剪贴板。我想覆盖使用这3种方法复制所选数据的功能,将所需数据复制到剪贴板。怎么样?
答案 0 :(得分:1)
您可以将自定义ContextMenuStrip分配给TextBox的ContextMenuStrip属性。因此,我将实例化我自己的,用复制/粘贴项目和您需要的其他项目填充它。然后,您可以处理ContextMenuStrip的Opening事件,检查TextBox中是否有选定的文本,并在显示之前修改菜单项(即更改“搜索谷歌”项目的可见属性)。
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { var item = searchGoogleMenuItem; if (item.Visible = !string.IsNullOrEmpty(textBox1.SelectedText)) item.Text = string.Format("Search Google '{0}'", textBox1.SelectedText); }