c# winfrom项目,如何实现在form窗体中点击鼠标右键自动关闭该窗体

在C# Winfrom项目中,两个form窗体(form1、form2),
在form1窗体中有个Button控件(实现点击该按钮弹出form2窗体)。
在form2窗体中包括有一个Panel控件,在Panel控件中放置一个Label控件以及三个Button控件(button1、button2以及button3)。

目前遇到点困难:
如果用户鼠标点击在了form2窗体中,用户再点击鼠标右键,可以响应form2窗体的鼠标右键事件,使form2窗体自动关闭。
如果用户鼠标点击了form2窗体中的button1、button2、button3按钮后,用户再点击鼠标右键,就无法响应form2窗体的鼠标右键事件(无法关闭form2窗体)。

请问怎么样实现鼠标的焦点在form2窗体中的button1、button2、button3按钮后,如何响应form2窗体的鼠标右键事件,使form2窗体自动关闭。

请各位帮忙看看,有没有相关的解决办法。谢谢!

你直接搜 c# 消息捕获 或者 消息过滤器 就能查到

你直接拦截消息好了,那样不管啥气候都能有效,可以重载wndproc,也可以使用消息过滤器

有没有这方面的参考文档,谢谢。

 private const int WM_RBUTTONDOWN = 0x0204;
protected override void WndProc(ref Message m) 
{ 
    const int WM_SYSCOMMAND = 0x0112; 
    const int SC_CLOSE = 0xF060; 
    if (m.Msg == WM_RBUTTONDOWN) 
    { 
              //... 关闭窗口
     } 
    base.WndProc(ref m); 
}