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

在业务上面有一种需求,同一个窗体只能同时打开一个,如果这个关闭,才能打开另一个。我的做法是在打开窗体的时候把本窗体的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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值