我有一个表格,必须在上面一段时间,然后可以正常设置在其他窗口后面。除了设置之外还有什么Me.TopMost
需要True
做False
的吗?我问是因为它似乎不起作用。
问问题
4512 次
1 回答
4
它应该没有问题。以下代码(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 中的上述代码(自动转换,未经测试):
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
于 2009-11-11T15:47:15.720 回答