代码之家  ›  专栏  ›  技术社区  ›  Shawn

在VB.NET中切换最顶层

  •  2
  • Shawn  · 技术社区  · 16 年前

    我有一个窗体,它必须在上面放置一段时间,然后可以正常地设置在其他窗口后面。除了布景还有什么吗 Me.TopMost True False

    1 回复  |  直到 16 年前
        1
  •  4
  •   Fredrik Mörk    16 年前

    这应该没有问题。下面的代码(C#,很抱歉,我现在所在的位置没有可用的VB.NET环境)设置 TopMost true 最顶端的 回到 false .

    private void MakeMeTopmostForAWhile()
    {
        this.TopMost = true;
        ThreadPool.QueueUserWorkItem(state =>
        {
            Thread.Sleep(5000);
            this.Invoke((Action)delegate { this.TopMost = false; });
        });
    }
    

    最顶端的 设置为 假的 ,该窗口仍将位于其他窗口的顶部。如果该窗口位于另一个也是最顶部的窗口的顶部,则该窗口将移动以使另一个最顶部的窗口不被覆盖,但它将保持在其他非最顶部的窗口的顶部。

    更新
    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
    
    推荐文章