C# 当我试图从backgroundworker\u RunWorkerCompleted事件打开时,Winform没有显示?
我的操作的细节是我有一个winform,它只包含进度条,我做了一些计算并将最终值存储在db中。为此,我使用了进度条和backgroundworker线程。 我正在backgroundworker线程事件doWork事件中进行所有计算。 当backgroundworker完成时,它调用RunWorkerCompleted事件,在该事件中我尝试打开另一个winform。 问题是winform不可见C# 当我试图从backgroundworker\u RunWorkerCompleted事件打开时,Winform没有显示?,c#,winforms,backgroundworker,C#,Winforms,Backgroundworker,我的操作的细节是我有一个winform,它只包含进度条,我做了一些计算并将最终值存储在db中。为此,我使用了进度条和backgroundworker线程。 我正在backgroundworker线程事件doWork事件中进行所有计算。 当backgroundworker完成时,它调用RunWorkerCompleted事件,在该事件中我尝试打开另一个winform。 问题是winform不可见 private void backgroundWorker1_RunWorkerCompleted(o
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (!string.IsNullOrEmpty(click)) {
if (click == "sales") {
Sales sales = new Sales();
sales.MdiParent = mdiStockApp.mdi;
sales.Show();
sales.Activate();
}
}
}
这是RunWorkerCompleted事件,我试图在其中打开另一个事件。刚才我也尝试了form.Activate(),但仍然没有可能是BackgroundWorker OnWorkCompleted引发了跨线程异常?在另一个线程中尝试UI处理,检查this.IsInvokeRequired属性并使用this.Invoke(…)能否提供一个代码段,显示您试图打开其他窗体的内容?确保私有void backgroundWorker1\u RunWorkerCompleted(对象发送方,RunWorkerCompletedEventArgs e){if(!string.IsNullOrEmpty(单击)){if(click==“sales”){sales sales=new sales();sales.MdiParent=mdiStockApp.mdi;sales.Show();sales.Activate();}}这是RunWorkerCompleted事件,我试图在其中打开另一个事件。刚才我也尝试过form.Activate(),但是如果删除
if()
语句,它仍然无效吗?它与Sales
以外的表单一起工作吗?不。即使没有if代码,它也不工作。当我调用Sales.Show()并尝试调试时,它永远不会进入Sales表单。有什么原因吗???