[英]Bringing a form to front when it is minimized in taskbar
有没有办法将已经最小化的表格带到Taksbar前面? 我尝试了以下代码,但未成功:
filterForm.Show();
filterForm.Activate();
filterForm.BringToFront();
PS:此表单是从另一个表单中调用的,用户在其中进行了一些处理,然后可以将其最小化。 我希望一次仅打开此表单的一个实例,因此用户第二次单击该按钮以显示该表单。我正在检查该表单是否已显示,如果显示,则希望其位于前面:
public FilterForm filterForm;
public bool IsFilterFormActive;
private void tsOpenFilerForm_Click(object sender, EventArgs e)
{
if (!IsFilterFormActive)
{
filterForm = new FilterForm();
filterForm.FormClosing += delegate {
IsFilterFormActive = false;
};
IsFilterFormActive = true;
filterForm.Show();
}
else
{
filterForm.Show();
filterForm.Activate();
filterForm.BringToFront();
}
}
您正在泄漏表单实例,最好的办法是在关闭它时将其设置回null。 然后,您也不需要布尔。 像这样:
FilterForm filterForm;
private void tsFilterForm_Click(object sender, EventArgs e) {
if (filterForm == null) {
filterForm = new FilterForm();
filterForm.FormClosed += delegate { filterForm = null; };
filterForm.Show();
}
else {
filterForm.WindowState = FormWindowState.Normal;
filterForm.Focus();
}
}
添加filterForm.WindowState = FormWindowState.Normal;
之前为了还原窗口。 如果将其最小化,则必须首先重新启动它。 然后filterForm.Activate()
应该足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.