【问题标题】:Excel interop: Restore minimized windowExcel 互操作:恢复最小化窗口
【发布时间】:2010-05-07 13:21:03
【问题描述】:

在我通过 com interop 与 Excel 交互的 winforms 应用中,

我正在尝试附加到现有的 Excel 进程(如果有的话)。获取对象似乎运行良好,但如果 Excel 应用程序被最小化(这很可能在我的用例中),我无法恢复窗口并将其置于前面。

我试过以下说法:

try
    app = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
catch (Exception) { /* ignore */ }

if (app == null)
{
    app = new Excel.Application();
    app.Visible = true;
}

if (app.ActiveWindow.WindowState == Excel.XlWindowState.xlMinimized)
    app.ActiveWindow.WindowState = Excel.XlWindowState.xlNormal;

wb = ...

wb.Activate();

这些都没有任何效果。我怎样才能做到这一点?

(请注意:我的问题与存在实例的情况有关,因此“Visible = true”不是必需的,this thread 不适用。 em>)

【问题讨论】:

标签: excel interop windowstate


【解决方案1】:

您希望app.WindowState = xlNormal 因为app.ActiveWindow 是当前工作表而不是应用程序实例主窗口。

【讨论】:

  • Alex,再简单不过了!想知道我自己怎么找不到这个,因为我什至首先在应用程序类上搜索了一个合适的方法......(可能我当时正在寻找一个“Activate()”方法)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多