关闭dll中的所有表单。 [英] Close all Form in dll.

查看:111
本文介绍了关闭dll中的所有表单。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的,

在我的申请中,我打电话给表格A,形成一个电话表格B(dll中的A和B)。当应用程序引发错误时,我想关闭在引用dll中调用的所有表单。怎么能?

在应用程序中,.NET有方法End或Application.Exit(),但我不知道在dll中,如何关闭dll中的所有引用但不关闭我的应用程序。请帮我。

谢谢大家。

Dear all,
In my application, I call form A, form A call form B (A and B in the dll). I want to close all form called in reference dll when application raise error. How can?
In Application, .NET have method End or Application.Exit(), but I don't know in dll, how to close all reference in dll but don't close my application. Please help me.
Thanks all.

推荐答案

没有直接的方法可以做到这一点。

但是,你可以添加你自己 - 这并不困难。

在DLL中创建一个静态列表(可能值得添加静态类DLLControl或类似的)Form对象。

每次其中一个表单获取Load事件,将其添加到静态列表,并向FormClosing事件添加处理程序。

在FormClosing处理程序中,检查表单是否在静态列表中,如果有的话将其删除。



现在,向DLL添加一个静态方法:

There is no direct way to do that.
However, you could add it yourself - it's not that difficult.
Create a static list within the DLL (it's probably worth adding a static class "DLLControl" or similar for this) of Form objects.
Each time one of the forms gets a Load event, add it to the static list, and add a handler to the FormClosing event.
In the FormClosing handler, check if the form is in the static list, and if so remove it.

Now, add a static method to the DLL:
public static CloseAllForms()
   {
   List<Form> openForms = staticListOfForms;
   staticListOfForms = new List<Form>();
   foreach (form f in openForms)
      f.Close();
   }


这篇关于关闭dll中的所有表单。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆