Form属性改为MDI之后,为什么就触发不了Form_Click事件了呢

如题:
Form属性改为MDI之后,为什么就触发不了Form_Click事件了呢?
...全文
221 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

private void Form1_Load(object sender, EventArgs e)
        {
            foreach (Control item in this.Controls)
            {
                if (item is MdiClient)
                {
                    item.Click += new EventHandler(Form1_Click);
                }
            }
        }
Kim_Du 2013-06-30
  • 打赏
  • 举报
回复
你说的是Form的Name属性修改为MDI吧,你要把相应的事件的名称也要修改过来,一般修改Name以后都会自动将相关的名称修改过来,如果没有修改的话,手动修改一下。Form_Click成为MDI_Click,记得事件关联里面也要改啊
  • 打赏
  • 举报
回复
引用 1 楼 Kim_Du 的回复:
你说的是Form的Name属性修改为MDI吧,你要把相应的事件的名称也要修改过来,一般修改Name以后都会自动将相关的名称修改过来,如果没有修改的话,手动修改一下。Form_Click成为MDI_Click,记得事件关联里面也要改啊
是IsMdiContaiter这个属性改为true之后。。。
人生导师 2013-06-30
  • 打赏
  • 举报
回复
引用 2 楼 nanfeiyannan 的回复:
[quote=引用 1 楼 Kim_Du 的回复:] 你说的是Form的Name属性修改为MDI吧,你要把相应的事件的名称也要修改过来,一般修改Name以后都会自动将相关的名称修改过来,如果没有修改的话,手动修改一下。Form_Click成为MDI_Click,记得事件关联里面也要改啊
是IsMdiContaiter这个属性改为true之后。。。[/quote] 你设置为true父窗体的Click事件是不能被触发的,这个是没有解决方案的,具体描述参考这个帖子: http://www.codeproject.com/Questions/528582/ClickplusEvenplusInplusC-23plusMDIplusForm 但是你可以设置KeyPreview属性为true,从而可以使父窗体触发KeyDown事件的,并且在那个帖子中也讲到微软后面会废弃MDI窗体的,更多关于MDI的学习你可以看看下面的博文: http://www.google.ee/search?newwindow=1&q=site%3Acnblogs.com+C%23+MDI窗体&oq=site%3Acnblogs.com+C%23+MDI窗体&gs_l=serp.3...8390.8952.0.9290.3.3.0.0.0.0.0.0..0.0...0.0...1c.1j4.18.serp.AhS0HkrUBXk
  • 打赏
  • 举报
回复
可能变成了父窗体之后,事件就不能执行了

111,098

社区成员

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

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

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