2011-11-18 28 views
1

我正在开发Excel的C#添加(使用VSTO工具)。我有一个异步进程正在运行,不时弹出一个通知窗口,显示在任务栏附近的所有窗口上方。C#show hide Excel窗口

我能够绑定一个事件来点击这些弹出的气泡。如果用户单击时隐藏Excel加入项,我想显示Excel窗口并导航到某个表单。

这可能吗?

回答

5

你可以找到运行感谢这个代码的Excel实例:

oExcelApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 

(详细信息在此线程:Get instance of Excel application with C# by Handle

您可能要检查是否Excel是对用户可见:

oExcelApp .Visible = true; 

而且这个片段来激活您想要的表:

oExcelApp.Worksheet sheet = (oExcelApp.Worksheet)this.Sheets["Sheet2"]; 
sheet.Select(Type.Missing); 
+0

非常感谢。不过,我的用户最有可能打开几个专业。有没有办法只显示有关的excel?在我的应用程序中,我在.xls文件下有一个ThisWorkBook.cs类。我可以以某种方式存储对此的引用,以便在需要时再显示它? – Jerome

+1

@jerome G:定义“关注excel” - 你将如何决定哪一个Excel过程是正确的?特别是当他们都加载你的插件? –

+0

另请参阅此线程:http://stackoverflow.com/questions/158706/how-to-properly-clean-up-excel-interop-objects-in-c-sharp/159419#159419好清理你的对象和关于如何选择工作表的一些提示。顺便说一句,你确定你会打开Excel的几个**实例吗?或几个工作表? – JMax