gpt4 book ai didi

c# - 如何在 Excel 共享插件中使用对话框

转载 作者:行者123 更新时间:2023-11-30 22:46:03 24 4
gpt4 key购买 nike

我正在为 Excel 编写一个共享插件。它添加了一个 CommandBarButton,单击该按钮会打开一个 WPF 窗口以从用户那里收集一些信息。

我想在内存中保留相同的 WPF 对话框并重复使用它,这样如果用户再次单击 CommandBarButton,它们之前的值仍会存在。

所以我引用了我的 WPF 对话框作为实现 Extensibility.IDTExtensibility2 的插件对象的私有(private)成员。

我在 OnStartupComplete() 期间创建了窗口,但出于某种原因,当我运行 Excel 时窗口立即打开,即使我从未调用 ShowDialog() 并且当我调用 ShowDialog() 时单击 CommandBarButton 以重新打开窗口它加载失败。

有谁知道为什么会发生这种情况以及处理这种情况的正确方法是什么?

非常感谢您的帮助。

代码更新:

public void OnStartupComplete(ref System.Array custom) 
{
MyDialog dlg = new MyDlg(); //This will open the dialog ?!?!
}

....

 public MyDialog()
{
InitializeComponent();
Loaded += new RoutedEventHandler(OnLoaded);
}

OnLoaded 只是为按钮连接一些事件处理程序并设置一些 ItemSources。即使我将其注释掉,它仍然会打开窗口。

我发现一旦 WPF 窗口关闭就无法重新打开,这是设计使然。但是为什么它在 excel 插件中构建时会自动打开是个谜。

最佳答案

我已经能够重现您的问题。在 WPF 设计器中,确保窗体的 Visbility 属性设置为 Collapsed。如果您将其设置为可见它将在创建对话框时自动显示

关于c# - 如何在 Excel 共享插件中使用对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com