一般我們在撰寫桌面應用程式如Windows Form 、WPF 的時候,會希望當我們按下某個按鍵的時候應用程式的視窗提到最上層來,供使用者操作,如此能夠減少使用者尋找視窗的時間,也可以增加應用程式功能性,但是如何將應用程式的視窗移動治罪最上層呢?
本篇文章將引導您使用C# Windows Form 開發,將應用程式視窗移動至最上層。
一般我們在撰寫桌面應用程式如Windows Form 、WPF 的時候,會希望當我們按下某個按鍵的時候應用程式的視窗提到最上層來,供使用者操作,如此能夠減少使用者尋找視窗的時間,也可以增加應用程式功能性,但是如何將應用程式的視窗移動治罪最上層呢?
本篇文章將引導您使用C# Windows Form 開發,將應用程式視窗移動至最上層。
首先在專案裡開起 Windows Form的新專案
接著在主程式中放置一個按鈕,用來將應用程式提到最上層的功能。
接著在主程式裡面中引用User32.Dll的系統Dll,並引用User32.Dll內的方法。
1: //將視窗移動到最上層
2: [DllImport("USER32.DLL")]//引用User32.dll
3: public static extern bool SetForegroundWindow(IntPtr hWnd);
4:
5: //尋找視窗
6: [DllImport("USER32.DLL")]//引用User32.dll
7: public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
然後在按鈕按下去的事件(Click)下加入程式碼
1: //以小算盤為例,名稱 CalcFrame
2: //為 Win 8 底下小算盤的ClassName
3: IntPtr player = FindWindow("CalcFrame", null);
4: if (player == IntPtr.Zero)
5: {
6: //若找不到小算盤的應用程式
7: //代表小算盤沒有被開啟
8: return;
9: }
10: //若小算盤已經被開啟了,則將小算盤移動到最上層
11: SetForegroundWindow(player);
如何尋找ClassName呢!?
接著運行,會發現按鈕按下後沒有反應,其實是因為我們並沒有開啟小算盤,
意即在使用這個程式碼之前,我們必須先將欲移動到最上層的應用程式開啟!
一開始小算盤並不是最上層的應用程式,
最上層的應用程式是我們所開發的應用程式
當我們按下按鈕之後,小算盤就被移動到最上層囉!
如此一來我們可以想要移動到最上層的應用程式移動到最上層囉!
可以做很多應用,客觀就自己發揮創意囉!
References : 這是SUKI很久以前寫過的專案,在此拿出來與各為國家未來的棟樑分享
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。