什麼是強大的方式來強制窗體帶來所有其他應用程序使用Windows C#應用程序的前端?有什麼強大的方式來強制一個表單帶來前臺?
回答
使用SetWindowsPos()API函數
設置Form.TopMost爲true
我已經嘗試使用Topmost = true。但仍然有一些第三方應用程序正在壓倒這種形式,並且由於這種情況,我的表單仍然滯後。 使用此表單的目的是阻止用戶查看其他應用程序。 – Anuya 2009-08-21 02:52:32
那麼,以迴應關於其他應用程序覆蓋表單的聲明。也許你可以做一些研究來找出「如何覆蓋最頂層=真」或「如何覆蓋this.bringToFront();」在C#中...也許這就是這些第三方應用程序的做法。 我的邏輯是......如果你以同樣的方式去做 - 你應該能夠把你的表格帶到前面,因爲你也會壓倒他們。 – 2009-08-21 07:44:26
this.BringToFront();
它對我很好。
這需要做成代碼(在標記中,我的意思是)。 – 2009-10-29 00:46:27
感謝您的提醒。完成。 – 2009-10-29 01:01:15
這裏是爲我工作的代碼:
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace LicenseManager {
public static class WinApi {
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
static private IntPtr HWND_TOPMOST = new IntPtr(-1);
private const uint SWP_NOSIZE = 0x0001;
private const uint SWP_NOMOVE = 0x0002;
static public void MakeTopMost(Form f) {
SetWindowPos(f.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
}
}
糟糕。顯然,你會改變命名空間的名字。 – 2011-07-20 14:07:16
這似乎是實際回答問題的少數答案之一,而不是用手指來回答問題。 – 2015-02-07 21:17:48
這個可能有用的一些詳細信息。我使用Charles Jenkins的答案,通過在form.load事件處理程序中調用「MakeTopMost」函數,使我的winforms應用程序成爲最頂級的應用程序。我需要這個功能,因爲我的winforms應用程序是由MSI安裝啓動的,Windows安裝程序進度條會顯示在最上面。
然而,這然後把主窗體放在主窗體想顯示的其他子窗體之上。爲了解決這個問題,我在form.shown事件處理函數中調用了我的函數MakeWindowNormal,以便將主窗體恢復爲正常窗口,因爲它已經加載並激活了,它現在位於Windows安裝程序進度條的前面(請參閱事件http://msdn.microsoft.com/en-us/library/86faxx0d(v=vs.110).aspx訂購)。這允許子窗體(和其他窗口,如果用戶移動它們)現在走在主窗體的前面。
static public void MakeWindowNormal(Form f)
{
SetWindowPos(f.Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
- 1. 任何方式來強制divs分組?
- 2. 任何方式來強制一個行動向下的議案?
- 3. 什麼是強制UIView重繪的最強大的方法?
- 4. 是否有聲明的方式來強制一組按鈕的大小相同?
- 5. 什麼是JavaScript中最緊湊的方式來強制一系列值的值?
- 6. 什麼是比.gitignore更強大的方式來保持(強制)文件回購嗎?
- 7. 強制轉換一個ByteArrayInputStream來的InputStream
- 8. 有沒有一種優雅的方式來強制比較兩個常量?
- 9. 強制GPS來吧
- 10. 什麼是強大的方式來創建延續已經出色的任務?
- 11. 有沒有什麼辦法來強制執行EE配置RuntimeUnenhancedClasses
- 12. 的.htaccess來強制地址
- 13. 有沒有一種公開的方式來強制MPNowPlayingInfoCenter顯示播客控件?
- 14. 強大的方式來顯示一個固定尺寸的圖像
- 15. Force_ssl /強制回到http。什麼是最好的方法來做到這一點?
- 16. 有沒有一種簡單而強大的方法來在Bash中創建一個「單例」進程?
- 17. 爲什麼Visual Studio強制StackNode有兩種不同的方式?
- 18. 帶來的MessageBox到前臺
- 19. 強制LINQ to SQL來使一個單一的呼籲所有子行
- 20. 什麼是強大的API?
- 21. 什麼是最簡單的方式來製作座標列表?
- 22. 正則表達式來強調標籤
- 23. 強制父div來擴大自身的孩子div有溢出
- 24. 帶有ExtJs的Shopware後臺增強類
- 25. 任何方式來強制執行android中的命名標準?
- 26. 跨瀏覽器的方式來強制SVG適合裏面div
- 27. 是否有一個API來強制Facebook再次刷新頁面?
- 28. 是否有一個jQuery的跨瀏覽器方法來強制頁面重載
- 29. 是否有一個設置來強制在Eclipse中的HTML編輯模式
- 30. 強制表單元格來從其他細胞的最大高度連續
我對你使用'強大'感興趣......你能推斷爲什麼你需要一個'強大'帶到前面,而不是普通的純正帶到前端? – jrista 2009-08-21 02:47:57
我永遠不希望你的應用程序把自己帶到前面。這是我在窗戶上唯一的寵物狗。閃爍的任務欄,你想要的,但如果你把重點... – 2009-08-21 02:49:23
@jrista,我用術語powefull因爲,我已經嘗試使用Topmost = true。但仍然有一些第三方應用程序正在壓倒這種形式,並且由於這種情況,我的表單仍然滯後。 – Anuya 2009-08-21 02:51:03