资料来源:网络整理
时间: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
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。