我有一个窗体,它必须在顶部一段时间,然后可以设置在其他窗口后面正常。除了将Me.TopMost设置为True或False之外,还需要做什么吗?我之所以这样问,是因为它似乎不起作用。
发布于 2009-11-11 23:47:16
应该不会有任何问题。下面的代码(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 Subhttps://stackoverflow.com/questions/1715895
复制相似问题