数据网格组合框控件中的线程错误

时间:2012-05-16 17:16:25

标签: c# datagrid

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

DataGrid Error

程序入口点方法是用STAThread属性设置的,我甚至把属性放在用控件调用窗体的方法上,但仍无济于事。有谁知道如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:1)

  

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

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

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

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