我有一個窗體必須在一段時間內處於頂部,然後才能正常設置在其他窗口的後面。除了將Me.TopMost
設置爲True
或False
還有什麼需要完成的嗎?我問,因爲它似乎沒有工作。在VB.NET中切換TopMost
回答
它應該沒有問題。下面的代碼(C#,對不起,沒有VB.NET環境可用,我現在正在使用)將TopMost
設置爲true
,等待5秒鐘,然後將TopMost
切換回false
。
private void MakeMeTopmostForAWhile()
{
this.TopMost = true;
ThreadPool.QueueUserWorkItem(state =>
{
Thread.Sleep(5000);
this.Invoke((Action)delegate { this.TopMost = false; });
});
}
請注意,這不會立即影響窗口的Z順序;當TopMost
設置爲false
時,窗口仍然位於其他窗口之上。如果窗口位於另一個也是最頂層的窗口的頂部,它將移動,以便不覆蓋另一個最頂層的窗口,但它將保持在其他非最頂層窗口之上。
更新
這裏是VB.NET上面的代碼(auto-converted,未測試):
Private Sub MakeMeTopmostForAWhile()
Me.TopMost = True
ThreadPool.QueueUserWorkItem(Function(state) Do
Thread.Sleep(5000)
Me.Invoke(DirectCast(Function() Do
Me.TopMost = False
End Function, Action))
End Function)
End Sub
將TopMost設置爲true時是否會立即影響Z順序?意味着它應該直接進入頂端? – Shawn 2009-11-11 16:08:26
@ShawN:它應該至少移動到任何非最頂層窗口的前面。我不會猜測它會自動移動到其他最頂層窗口的前面。如果你想強制你可以調用'Me.BringToFront()'。 – 2009-11-11 16:10:46
@Shawn:我做了一個快速測試,看起來好像設置「TopMost = True」強制窗口在前面,也在其他已經是最頂層的窗口之前。將它設置爲false似乎將其移回到不足以覆蓋任何最頂層的窗口。 – 2009-11-11 16:15:16
- 1. 如何在VB.NET中切換Caps Lock?
- 2. TopMost不是TopMost總是 - WPF
- 3. VB.NET從ADO.NET切換到LINQ
- 4. 切換按鈕顏色VB.net?
- 5. 窗體之間的切換(VB.NET)
- 6. 線程中的TopMost表單?
- 7. 如何在Selenium中切換和切換
- 8. BrowseForFolder-Dialog:center and make TopMost
- 9. WinForm不再是TopMost?
- 10. 替換「在vb.net
- 11. TopMost窗口有時會出現在非TopMost全屏窗口後面
- 12. 切換到的ByRef BYVAL在方法調用VB.NET
- 13. 切換按鈕不切換在Android
- 14. 全屏幕TOPMOST窗口
- 15. 在Qt中切換佈局
- 16. 在EF Linq中切換
- 17. 在React-Native中切換TextInputs
- 18. 在PHP中切換語句
- 19. 在Java中切換非Ints
- 20. 在窗口中切換UserControls?
- 21. 在eclipse中切換SDK
- 22. 在Java Applcation中切換Windows
- 23. 在WebStorm中切換項目
- 24. 在PyQt中切換按鈕
- 25. 在ASP.NET中切換按鈕
- 26. 在Java中切換循環
- 27. 在Unity中切換精靈
- 28. 在angularjs中使用切換
- 29. 在jQuery中切換類
- 30. 在ViewFlipper中切換視圖
以何種方式它似乎不工作? – 2009-11-11 15:39:45