首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenFileDialog in SAP B1外接程序C#

OpenFileDialog in SAP B1外接程序C#
EN

Stack Overflow用户
提问于 2018-03-29 09:48:29
回答 1查看 1.9K关注 0票数 2

我正在进行SAP B1附加使用C#的工作。当我调用OpenFileDialog.ShowDialog()时,将引发此异常:

在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保主函数上标记了STAThreadAttribute。

只有当调试器附加到进程时,才会引发此异常。我在[STAThread]方法之前添加了Main,但仍然存在相同的问题。

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 10:01:45

我找到了我添加了一个新线程的解决方案,它工作得很好,下面是代码

代码语言:javascript
复制
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();     
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49552910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档