问题描述:在主线程里开个子线程,用子线程去New一个窗体FrmInitialize,并Show出来,在主线程中访问子线程中Show的窗体的控件,需传值给控件
Main.cs
static class Main
{
static FrmInitialize frmInit = null;
public static bool Login()
{
Thread thread = new Thread(frmInit);
thread.Start();
............
frmInit.Label2.Text = "正在初始化。。。。。"; //每次执行都这句话时 都会报“线程间操作无效,从不是创建控件的线程访问控件“的错误。
....................
frmInit.Close();
}
public static void frmshow()
{//线程
frmInit = new FrmInitialize();
frmInit.showDialog();
}
}
FrmInitialize.cs
public FrmInitialize()
{
InitializeComponent();
FrmInitialize.CheckForIllegalCrossThreadCalls = false; //加了这句话就可以解决线程间操作无效的问题
}
本文讨论了在C#中如何在主线程中操作通过子线程创建的窗体控件,遇到线程间操作无效的问题及解决方案。
998

被折叠的 条评论
为什么被折叠?



