我打开了多个表单。现在说我有表格1,2和3是开放的。 1打开2和2打开3.现在当用户点击2时,此屏幕应该到达前面并将屏幕2发送到它的背面。同样,每当点击一个屏幕时,该屏幕应该显示在前面,前面显示的屏幕应该返回一个屏幕。
我在激活和停用的事件中尝试了各种各样的事情,但没有像以下那样工作:
protected override void OnDeactivate(EventArgs e)
{
if (!closeEvent)
{
base.OnDeactivate(e);
this.WindowState = FormWindowState.Minimized;
}
}
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
this.WindowState = FormWindowState.Normal;
closeEvent = false;
}
对此的任何帮助将不胜感激。
答案 0 :(得分:0)
我认为Control.BringToFront()
应该有所帮助。如果我没记错,Form
会继承Control
。
虽然我不确定我理解为什么它已经有这种行为。如果我没有误解,你想把用户点击的窗口带到前面,对吧? Windows不这样做吗?
答案 1 :(得分:0)
根据我在WinForms应用程序中使用的内容,我将使用以下内容:
this.Focus(); //We always focuss on it because it make on the top..
这一般适用于表单控件。请注意,如果存在模态窗口,则会影响此命令的结果。
激活类似于焦点,但不会将其置于顶部,但更多会将应用程序闪烁到任务栏,指示它处于活动状态。
如果有效,请告诉我。 :)
答案 2 :(得分:0)