private void openDialog() {
OpenFileDialog od = new OpenFileDialog();
od.Filter = "Word文档(*.doc)|*.doc|rtf文档(*.rtf)|*.rtf";
if (od.ShowDialog() == DialogResult.OK && od.FileName != "")
{
try
{
this.txtFilePath.Text = od.FileName;
}
catch (Exception ex)
{
MessageBox.Show("出现异常:" + ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
}
C#调用文档选择框时抛出异常:“System.Threading.ThreadStateException”类型的未经处理的异常在 System.Windows.Forms.dll 中发生其他信息: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
但是检查之后发现 Main 函数中是带有 STAThreadAttribute 标记的。
解决方法:将bin目录删除,重新运行即可。