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

sxl_88 2015-04-08 08:24:14
在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窗体自动关闭。


请各位帮忙看看,有没有相关的解决办法。谢谢!
...全文
335 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcx411201851 2015-04-09
  • 打赏
  • 举报
回复
楼上对。为form2里的所有控件加上。右键点击事件
  • 打赏
  • 举报
回复
没有好的办法,看你的问题 一楼可解。
sxl_88 2015-04-09
  • 打赏
  • 举报
回复
谢谢楼上的回复,还有其它的解决办法吗?
  • 打赏
  • 举报
回复
void SetClose(Control parent)
        {
            foreach (Control c in parent.Controls)
            {
                c.MouseDown += c_MouseDown;
                if (c.Controls.Count > 0)
                {
                    this.SetClose(c);
                }
            }
        }

        void c_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                this.Close();
            }
        }
执行SetClose(this)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧