抱歉,我最初误解了这个问题,但现在修改了我的答案,向您展示如何从上下文菜单中检测点击
在寻找解决方案时,我遇到了许多指向 WinProc 的文章。沿着那条大道走下去,我遇到了以下情况
由于您对单击命令感兴趣,因此我进入了菜单通知,然后查看了WM_MENUCOMMAND消息。
然后,您必须创建一个用户控件并将其更改为从文本框继承并添加以下覆盖
public partial class TextBoxUsingDefaultContextMenu : TextBox
{
public TextBoxUsingDefaultContextMenu()
{
InitializeComponent();
}
protected override void WndProc(ref Message m)
{
const int WM_CONTEXTMENU = 0x007B;
const int WM_MENUCOMMAND = 0x0126;
const int WM_COMMAND = 0x0111;
switch (m.Msg)
{
case WM_CONTEXTMENU:
MessageBox.Show("Opening Context Menu");
break;
case WM_MENUCOMMAND:
MessageBox.Show("WM Menu Command Event fired");
break;
case WM_COMMAND:
MessageBox.Show("WM Command Event fired");
break;
}
base.WndProc(ref m);
}
protected override void DefWndProc(ref Message m)
{
base.DefWndProc(ref m);
}
}
写上面的代码,我可以检测到“上下文菜单打开”事件,但还没有检测到点击事件。其他人将不胜感激这里的任何帮助,甚至这个主题对我来说也是新的。