如何在Excel共享插件中使用对话框
我正在写一个Excel的共享插件。 它添加一个CommandBarButton,当点击打开一个WPF窗口来收集用户的一些信息。
我想保持相同的WPF对话框在内存中,并重用它,以便如果用户再次单击CommandBarButton他们以前的值将仍然在那里。
所以我引用了我的WPF对话框,作为实现Extensibility.IDTExtensibility2的插件对象的私有成员。
我在OnStartupComplete()期间创build了窗口,但由于某种原因,当我运行Excel时,窗口立即打开,即使我从来没有调用ShowDialog(),当我点击CommandBarButton时调用ShowDialog()重新打开窗口,它无法加载。
有谁知道为什么会发生这种情况,正确的方法是什么?
非常感谢您的帮助。
代码更新:
public void OnStartupComplete(ref System.Array custom) { MyDialog dlg = new MyDlg(); //This will open the dialog ?!?! }
….
public MyDialog() { InitializeComponent(); Loaded += new RoutedEventHandler(OnLoaded); }
OnLoaded只是连接一些事件处理程序的button,并设置一些ItemSources。 即使我评论它,它仍然打开窗户。
我已经拿起了一个事实,一旦WPF窗口closures,它不能重新开始,这是devise。 但是为什么在excel插件里面自动打开是一个谜。
我已经能够重现你的问题。 在WPFdevise器中,确保表单的Visibility属性设置为Collapsed 。 如果您将其设置为“ 可见” , 则会在创build对话框时自动显示 。