我正在製作excel插件,點擊菜單項或工具欄按鈕,Form打開。我將窗體的頂部設置爲true,但它仍然是Windows XP所有應用程序的最高層。我只需要保持最高級到Microsoft Excel。如何使表單最上層到應用程序?
我在Visual Studio 2008中選擇了項目,在Excel - > 2003中。
請告訴我該怎麼做任何方式........
我正在製作excel插件,點擊菜單項或工具欄按鈕,Form打開。我將窗體的頂部設置爲true,但它仍然是Windows XP所有應用程序的最高層。我只需要保持最高級到Microsoft Excel。如何使表單最上層到應用程序?
我在Visual Studio 2008中選擇了項目,在Excel - > 2003中。
請告訴我該怎麼做任何方式........
您可以設置窗體的所有者是Microsoft Excel中窗口。在Windows中,owned windows始終顯示在其所有者之上。對話框和類似Excel中搜索框的東西都是擁有的窗口,這就是讓它們顯示在其所有者之上的窗口。
有幾個方法可以設置窗體的父:
這確實需要您瞭解Excel應用程序窗口句柄。
[編輯 - 改變代碼]
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
void func()
{
Form1 f = new Form1();
SetParent(f.Handle, (IntPtr)ThisAddIn.ExcelApplication.Hwnd);
f.Show();
}
但我需要在Excel對話框打開時工作。 – 2010-04-10 13:45:22
更改我的代碼以使用設置窗口的父項。 – 2010-04-10 14:30:04
良好的分享。你的第二條路最終解決了我的問題。 – 2010-04-10 14:12:18
感謝您的回答... – 2010-04-10 14:13:22