一定期間上にある必要があるフォームがあり、その後、通常は他のウィンドウの後ろに設定できます。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 に答える