表单关闭时,Excel加载项窗体将Excel发送到后台

时间:2011-09-15 15:05:57

标签: c# forms excel popup

我有一个弹出表单的Excel加载项。如果用户填写了一些值并单击“应用”按钮,则值将正确发送到基础工作表并关闭弹出窗体。但是,如果用户点击“取消”,则会弹出一个消息框,验证用户是否要取消。单击“是”会导致弹出窗体关闭,但也会将Excel发送到先前活动的窗口后面 - 非常类似于按Alt-Tab。这不好!

是否有人对如何将Excel放在首位有任何想法?

谢谢!

兰迪

2 个答案:

答案 0 :(得分:0)

你可以把它放在消息框ActiveWindow.ActivatePrevious之后  并用

进行测试
Debug.Print ActiveWindow.Caption
ActiveWindow.ActivatePrevious
Debug.Print ActiveWindow.Caption

答案 1 :(得分:0)

我在ActiveWindow / ActiveView上查找了各种变体,但找不到任何适用的变体。最后,我绕过Mulberry灌木丛拿出来:

        IntPtr excelWindow = excelWindow = SpreadsheetApplicationFactoryBase.TheExcelApp.ExcelWin32Window.Handle;
        Win32.SetActiveWindow(excelWindow);

丑陋,但它确实有效。工厂是一个创建/返回Excel实例的小类。

我非常感谢输入。

兰迪