C# 如何将Windows窗体置于顶部?
我正在用C#开发一个windows窗体应用程序。当一种特殊的外部事件发生时,这个应用程序在窗体上显示一些文本(例如,假设我想在鼠标位置y=0时在窗体上写“鼠标在上面一行”)。当事件发生时,我需要将窗体置于其他窗口的顶部。尝试使用此选项C# 如何将Windows窗体置于顶部?,c#,winforms,C#,Winforms,我正在用C#开发一个windows窗体应用程序。当一种特殊的外部事件发生时,这个应用程序在窗体上显示一些文本(例如,假设我想在鼠标位置y=0时在窗体上写“鼠标在上面一行”)。当事件发生时,我需要将窗体置于其他窗口的顶部。尝试使用此选项 yourForm.TopMost = true; 在窗体类中使用此选项: public void BringToTop() { //Checks if the method is called from UI thread or not if (
yourForm.TopMost = true;
在窗体类中使用此选项:
public void BringToTop()
{
//Checks if the method is called from UI thread or not
if (this.InvokeRequired)
{
this.Invoke(new Action(BringToTop));
}
else
{
if (this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
//Keeps the current topmost status of form
bool top = TopMost;
//Brings the form to top
TopMost = true;
//Set form's topmost status back to whatever it was
TopMost = top;
}
}
根据需要,您只需执行form.Activate()代码>
附言。
您可能会发现它也很有用。如何从外部事件将其设置为真?如果最小化窗口,它将不起作用。它会给我运行时错误。从异常消息中,我想我无法更改另一个线程的值。我编辑了您的问题以使其更清晰,但仍然不清楚,“鼠标位置y=0”是什么意思?您必须将MDIPATER和MDICILD用于不同的类,并在前面显示、激活或其他任何内容。@Sayse:这一点都不重要。我只是想举一个事件的例子。我测试了它,它真的很有效。谢谢。我从另一个人那里得到了帮助,我知道我只是把它传给你。