复制和粘贴在VBE开发环境的加载项的窗体对话框中不起作用

问题描述

我为VBE开发环境编写了一个加载项,如下所述:How to write a Add-in for the development enviroment: "Microsoft Visual Basic for Applications"

我在其中创建了一个settingsDialog(它是带有某些文本框的常见Forms-dialog),如下所示打开:

var dlg = new SettingsDlg(m_Settings);
dlg.StartPosition = FormStartPosition.CenterParent;
dlg.Show(new HwndWrapper(m_VBE.MainWindow.HWnd));

但是在SettingsDlg中,复制和粘贴无效。当我尝试将文本发布到文本框中时,什么也没发生。

解决方法

我通过在一个额外的线程中启动表单来解决这个问题。像这样:

        var thread = new Thread(() =>
        {
            var dlg = new SettingsDlg(m_Settings);
            dlg.StartPosition = FormStartPosition.CenterParent;
            dlg.Show(new HwndWrapper(m_VBE.MainWindow.HWnd));
            Dispatcher.Run();
        });

        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();