假设您打开了一堆Excel工作簿,但您想将其排在最前面以使用户与该书进行交互。你怎么做到的?
我当前正在使用Microsoft.Office.Interop.Excel 15.0.0.0版。
我尝试没有成功:
Excel.Workbook output = app.Workbooks[path];
(Excel._Workbook)output).Activate();
也
foreach (Excel.Windows w in ((Excel._Workbook)output).Windows)
w.*something*
force to bring excel window to the front?这个问题不适用,因为365已放弃MDI,因为每个工作簿都有单独的窗口。
答案 0 :(得分:0)
答案是来自引用页面的答案的组合:
BringExcelWindowToFront(app);
((Excel._Workbook)output).Activate();
这是执行第一部分的支持代码:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
public static void BringExcelWindowToFront(Excel.Application xlApp)
{
string caption = xlApp.Caption;
IntPtr handler = FindWindow(null, caption);
SetForegroundWindow(handler);
}