我正在进行SAP B1附加使用C#的工作。当我调用OpenFileDialog.ShowDialog()时,将引发此异常:
在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保主函数上标记了STAThreadAttribute。
只有当调试器附加到进程时,才会引发此异常。我在[STAThread]方法之前添加了Main,但仍然存在相同的问题。
发布于 2018-03-29 10:01:45
我找到了我添加了一个新线程的解决方案,它工作得很好,下面是代码
Thread t = new Thread(() =>
{
OpenFileDialog openFileDialog = new OpenFileDialog();
DialogResult dr = openFileDialog.ShowDialog(new Form());
if (dr == DialogResult.OK)
{
string fileName = openFileDialog.FileName;
this.EditText0.Value = fileName;
SAPbouiCOM.Framework.Application.SBO_Application.MessageBox(fileName);
}
}); // Kick off a new thread
t.IsBackground = true;
t.SetApartmentState(ApartmentState.STA);
t.Start(); https://stackoverflow.com/questions/49552910
复制相似问题