问题描述
我为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();