在可以调用OLE之前,必须将当前线程设置为单线程单元(STA)模式

socg 2006-06-06 08:13:26
利用线程启动有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试过,还是会出现异常,请高手指点一下!
...全文
1055 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
socg 2006-06-07
  • 打赏
  • 举报
回复
Ctrl+C好象是有特殊的功能,我用TC2写的程序按Ctrl+C也是会无条件退出!
socg 2006-06-06
  • 打赏
  • 举报
回复
自己Up一下!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧