专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

Winform 继承窗体关系,基窗体监控子窗体的关闭事件

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:55:14       共计:3624 浏览
在业务上面有一种需求,同一个窗体只能同时打开一个,如果这个关闭,才能打开另一个。我的做法是在打开窗体的时候把本窗体的Name添加到静态List中,然后本窗体关闭的时候,在从List中移除。这样在窗体打开第二次的时候,就会根据List中是存在而判断。窗体打开的时候,因为都在Main窗体中,所以可以很容易取到窗体的Name,那么关闭呢。每一个窗体都有自己的两个关闭事件,一个是FormClosing,一个是FormClosed。但是如果每个窗体都去实现这两个中的一个,工作量太大。因为我们的子窗体都是继承自基窗体,所以可以注册基窗体的关闭事件,通过sender就可以知道是哪个子窗体关闭。

1、基窗体注册关闭事件,在关闭的时候,通过sender可以知道是哪个子窗体关闭。

    public FormChild ( )
            {
                InitializeComponent ( );
     
                this . FormClosing += FormChild_FormClosing1;
                
                //Power ( );
            }
     
            private void FormChild_FormClosing1 ( object sender ,FormClosingEventArgs e )
            {
                Form form = ( Form ) ( sender );
                if ( FormClosingState . mdiChildForm . Contains ( form . Name ) )
                    FormClosingState . mdiChildForm . Remove ( form . Name );
            }

2、子窗体只需要继承基窗体即可

public partial class FormLineForAssPlan :FormChild
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:C# 数据表格(DataGridView)控件的应用案例 | ·下一条:winform 窗体实现增删改查(CRUD)窗体基类模式

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有