从C#类库

时间:2016-06-02 16:37:27

标签: c# winforms showdialog

我有两个窗体Form1Form2以及一个c#类库CLProduct

现在,Form1已经打开,调用CLProduct类中的方法显示Form2,此时我想限制对Form1的访问权限,直到{ {1}}已关闭。

我在CLProduct中的方法中有以下代码加载

Form2

我知道var _frm2= new Form2(); _frm2.ShowDialog(); 加载了一个模态,默认情况下,当从Form1调用ShowDialog时,默认情况下会限制对Form1的访问,但在我的方案中ShowDialog实际上是从类中调用的原因不会限制ShowDialog,因为它未从Form1

调用

Form2正在一个在Form1中创建的工作线程上运行,如下所示

Form1

有没有办法从 if (pPBackgroundWorker.IsBusy == false) { // Start the asynchronous operation. pPBackgroundWorker.RunWorkerAsync(); } 处理此问题?

1 个答案:

答案 0 :(得分:0)

您应该只需为ShowDialog调用From2并传递Form1作为参数即可获得所需的行为。 (_frm2.ShowDialog(_frm1)

但正如HansPassant在评论中指出的那样,如果Form2找不到合适的所有者本身,则很可能意味着它正在工作线程上运行,这可能会导致一些非常讨厌的错误/问题。