一般我們在撰寫桌面應用程式如Windows Form 、WPF 的時候,會希望當我們按下某個按鍵的時候應用程式的視窗提到最上層來,供使用者操作,如此能夠減少使用者尋找視窗的時間,也可以增加應用程式功能性,但是如何將應用程式的視窗移動治罪最上層呢?

本篇文章將引導您使用C# Windows Form 開發,將應用程式視窗移動至最上層。

 

首先在專案裡開起 Windows Form的新專案

 

1

 

接著在主程式中放置一個按鈕,用來將應用程式提到最上層的功能。

 

2

接著在主程式裡面中引用User32.Dll的系統Dll,並引用User32.Dll內的方法。

//將視窗移動到最上層
[DllImport("USER32.DLL")]//引用User32.dll
public static extern bool SetForegroundWindow(IntPtr hWnd);
 
//尋找視窗
[DllImport("USER32.DLL")]//引用User32.dll
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

 

然後在按鈕按下去的事件(Click)下加入程式碼

//以小算盤為例,名稱 CalcFrame 
//為 Win 8 底下小算盤的ClassName
IntPtr player = FindWindow("CalcFrame", null);
if (player == IntPtr.Zero)
{
    //若找不到小算盤的應用程式
    //代表小算盤沒有被開啟
    return;
}
//若小算盤已經被開啟了,則將小算盤移動到最上層
SetForegroundWindow(player);

 

如何尋找ClassName呢!?

參閱 C# 使用Spy++查看桌面應用程式視窗的資訊。

 

接著運行,會發現按鈕按下後沒有反應,其實是因為我們並沒有開啟小算盤,

意即在使用這個程式碼之前,我們必須先將欲移動到最上層的應用程式開啟!

 

 

 

一開始小算盤並不是最上層的應用程式,

最上層的應用程式是我們所開發的應用程式

 

3

 

當我們按下按鈕之後,小算盤就被移動到最上層囉!

 

4

 

如此一來我們可以想要移動到最上層的應用程式移動到最上層囉!

可以做很多應用,客觀就自己發揮創意囉!

 

References : 這是SUKI很久以前寫過的專案,在此拿出來與各為國家未來的棟樑分享

SetForegroundWindow function

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
http://www.sukitech.com/?p=1080
轉載請註明出處,並且附上本篇文章網址 !  感謝。

19 Thoughts on “C# Windows Form 開發,將應用程式視窗移動至最上層。

  1. Really enjoyed this blog.Really thank you! Great.

  2. I value the article post.Thanks Again. Much obliged.

  3. Wow, great article post.Much thanks again. Fantastic.

  4. Awesome article post. Great.

  5. I truly appreciate this article.Really looking forward to read more. Really Great.

  6. A round of applause for your article post.

  7. I loved your blog.Thanks Again.

  8. Really appreciate you sharing this blog.Thanks Again. Really Cool.

  9. I really like and appreciate your article post.Really thank you! Really Great.

  10. Thanks for sharing, this is a fantastic post.Thanks Again. Really Great.

  11. wow, awesome blog article.Thanks Again. Really Great.

  12. Im grateful for the blog article.Much thanks again. Much obliged.

  13. Really appreciate you sharing this post.Thanks Again. Fantastic.

  14. Im thankful for the article post.Thanks Again. Fantastic.

  15. Appreciate you sharing, great blog post. Will read on…

  16. This is one awesome blog.Really thank you! Will read on…

  17. Thanks for sharing, this is a fantastic article. Awesome.

  18. I really enjoy the post.Much thanks again. Much obliged.

  19. Major thanks for the post. Awesome.

發表迴響

你的電子郵件位址並不會被公開。

Post Navigation