是否可以获取和修改文本框的标准系统上下文菜单

本文关键字:标准 系统 上下文 菜单 文本 获取 修改 是否 | 更新日期: 2023-09-27 17:56:39

我有一个简单的带有文本框的winform app。
我没有为文本字段分配任何上下文菜单,并且"它使用"标准菜单。我希望在文本框的标准上下文菜单中添加一些新项目。但是我无法获得它进行修改,如果更清楚的话,我不知道如何获取 HMENU 本机对象。
我的文本框ContextMenu属性等于null所以我认为菜单在文本框 defaul windProc 路由中应用。有没有办法获取默认上下文菜单或获取它的副本?

提前感谢!

是否可以获取和修改文本框的标准系统上下文菜单

根据您使用的任何插件,创建派生自 TextBox 并定义"默认"上下文菜单的自定义控件可能更容易且更易于理解。然后,将解决方案中的所有文本框更改为自定义控件。如果做不到这一点,如果您有一个公共窗口祖先,请设置一些初始化代码,将给定的 ContextMenu 分配给窗体层次结构中 TextBox 类型的所有控件。您不是插入低级 Windows 挂钩,而是使用框架为您提供的内容来完成相同的目的,并且您的后代不必知道 Windows 如何在消息传递级别处理上下文菜单即可更改此行为。