利用线程启动有DataGrid或DataGridView的窗体后,按下Ctrl+C就会出现异常,描述如下:
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。public partial class Form1:Form
{
... void button1_Click(object sender,EventArgs e)
{
Thread t=new Thread(new ThreadStart(aaa));
t.Start();
}
void aaa()
{
Form2 f=new Form2();
f.ShowDialog();
}
}
public partial class Form2:Form
{
public Form2()
{
DataGridView dataGridView=new DataGridView();
DataTable dataTable=new DataTable();
dataTable.Columns.Add();
dataGridView.DataSource=dataTable;
this.Controls.Add(dataGridView);
}
}我Main()前有标记STAThreadAttribute,而且在其他函数前加STAThreadAttribute试过,还是会出现异常,请高手指点一下!
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。public partial class Form1:Form
{
... void button1_Click(object sender,EventArgs e)
{
Thread t=new Thread(new ThreadStart(aaa));
t.Start();
}
void aaa()
{
Form2 f=new Form2();
f.ShowDialog();
}
}
public partial class Form2:Form
{
public Form2()
{
DataGridView dataGridView=new DataGridView();
DataTable dataTable=new DataTable();
dataTable.Columns.Add();
dataGridView.DataSource=dataTable;
this.Controls.Add(dataGridView);
}
}我Main()前有标记STAThreadAttribute,而且在其他函数前加STAThreadAttribute试过,还是会出现异常,请高手指点一下!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货