【问题标题】:OpenFileDialog in SAP B1 Add-On C#SAP B1 附加组件 C# 中的 OpenFileDialog
【发布时间】:2018-09-08 05:24:09
【问题描述】:

我正在使用 C# 开发 SAP B1 附加组件。当我调用OpenFileDialog.ShowDialog() 时会抛出此异常:

当前线程必须设置为单线程单元 (STA) 模式 在可以进行 OLE 调用之前。确保您的 Main 函数具有 STAThreadAttribute 标记就可以了。

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

【问题讨论】:

    标签: c# add-on sapb1


    【解决方案1】:

    我找到了解决方案,我添加了一个新线程,它工作正常,这是代码

    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();     
    

    【讨论】:

    • 仅供参考:这仍然适用于 SAPBusinessOneSDK.dll 、SAP B1 9.30.180 和 Visual Studio 2019。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2018-07-29
    • 2022-08-09
    • 2022-08-09
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多