0

我的项目中有一个 datagrid 控件,它有一个手动填充数据的组合框控件,但是问题是当我尝试在添加新行时编辑此值时,我得到一个线程状态异常:

数据网格错误

程序入口点方法是用STAThread属性设置的,我什至把属性放在用控件调用表单的方法上,还是没有用。有谁知道我该如何解决这个问题?谢谢。

4

1 回答 1

1

程序入口点方法是使用 STAThread 属性设置的...

这仅适用于应用程序的主线程。您还必须注意您创建的显示此对话框的线程。例如:

    Thread t = new Thread(new ThreadStart(ThreadProc));
    t.SetApartmentState(ApartmentState.STA);
    t.Start();

如果您没有直接创建线程,则需要更彻底地更改代码。例如,如果您在 Delegate.BeginInvoke() 调用中显示对话框,该线程将是应用程序的默认线程池。由于您无法控制该线程的创建,因此您无法将其创建为 STA 线程。相反,您需要像上面那样创建自己的线程来显示对话框。

于 2012-05-16T17:36:36.047 回答