C#中,在線程中為什么不能設定DataGrid的DataSource啊?
我想先顯示窗體,然后在線程中填數據,再綁定DataGrid,但是總提示不能更改其它線程的控件,我根本沒有操作什么啊!
(如何解決數據首次加載很慢得問題啊?(數據量不大). 就算不能提速,先讓窗體可以正常顯示也好啊!)
我想先顯示窗體,然后在線程中填數據,再綁定DataGrid,但是總提示不能更改其它線程的控件,我根本沒有操作什么啊!
(如何解決數據首次加載很慢得問題啊?(數據量不大). 就算不能提速,先讓窗體可以正常顯示也好啊!)
{
this.dataGrid1.DataSource = ds.Tables[0].DefaultView;
}
private void FillGrid(object sender,System.EventArgs e)
{
Grid.DataSource=tblMain;
}private void fillData()
{
Grid.DataSource =null;
System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection(cnStr);
System.Data.SqlClient.SqlDataAdapter adpt=new System.Data.SqlClient.SqlDataAdapter("SELECT Old_Item_Code FROM FD_ITEM WHERE Order By Old_Item_Code",cn);
tblMain.Rows.Clear();
cn.Open();
adpt.Fill(tblMain);
cn.Close();
Grid.Invoke(new EventHandler(FillGrid));
}private void frmCMItemType_Load(object sender, System.EventArgs e)
{
thd=new System.Threading.Thread(new System.Threading.ThreadStart(fillData));
// thd.IsBackground=true;
thd.Start();
}
不過不明白為什么會這樣.