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

时间:2011-05-16 14:34:21

标签: c# winforms winapi

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

根据您使用的任何插件,创建一个从TextBox派生并定义“默认”上下文菜单的自定义控件可能更容易,也更容易理解。然后,将解决方案中的所有TextBox更改为您的自定义控件。如果失败了,如果你有一个共同的窗口祖先,请设置一些初始化代码,将给定的ContextMenu分配给TextBox类型的表单层次结构中的所有控件。您没有插入低级别的Windows挂钩,而是使用框架为您提供的功能,而您的子孙后代不必知道Windows如何在消息传递级别处理上下文菜单以便更改这种行为。