如何在另一个线程创建的表单上调用Show()?

时间:2019-06-27 18:59:24

标签: c# multithreading winforms

MyForm myForm = null;
if (myForm == null)
{
    //create form if not exists
    myForm = new MyForm(true);
    OpenFormInNewThread(cl);
} else
    //show previously hidden form
    cl.Show();

我要在新线程中打开Windows窗体。关于的代码基本上是有问题的代码。我试图找到一种在第一次打开时初始化表单的方法。但是当关闭窗体时,我只想在FormClosing上隐藏()窗体,在随后打开时,我只想对隐藏的窗体进行Show()。因此,对于单个会话,只应创建一次表单,但随后仅将其隐藏/显示。

问题是我正在从另一个线程打开此表单。因此,对于初始化,我没有任何问题,我的表单仅在新线程中打开。但是,如果已经创建了表单,则无法在另一个线程中创建的表单上调用Show()方法。

有一种简单的方法吗?

0 个答案:

没有答案