Excel加载项内的WPF对话框,焦点问题

4nkexdtk  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(115)

我有一个Excel插件,我用ExcelDNA和C#构建。加载项使用WPF对话框中的“基本对象浏览器”。但是,当我试图将焦点从WPF对话框更改为Excel工作表时遇到了一个问题。每当我单击一个单元格时,该单元格将被选中并更改,但焦点仍保留在对话框上。这会导致任何输入进入对话框而不是单元格。有趣的是,如果我单击单元格以外的其他任何位置,焦点将正确设置为Excel对话框。我想知道WPF对象上是否有任何特定的属性需要设置来解决这个问题。
我还观察到,当WPF对话框处于活动状态并且鼠标悬停在单元格上时,光标会变为十字形。但是,当其他对话框处于活动状态时,单元格上的光标仍保持为指针,并且在单击时焦点会正确更改。

zbsbpyhn

zbsbpyhn1#

如果你不想以模态显示窗口,也许你可以尝试将其显示为ICustomTaskPane,并将其属性DockPosition设置为MsoCTPDockPosition.msoCTPDockPositionFloating

public void ShowPane(IRibbonControl control)
        {
            if (ExcelDnaUtil.IsInFunctionWizard())
            {
                return;
            }
             // ... other code

            ICustomTaskPane_pane = CustomTaskPaneFactory.CreateCustomTaskPane(typeof(YourWindow), "YourName");
            _pane.DockPosition = MsoCTPDockPosition.msoCTPDockPositionFloating;
        }

相关问题