当窗体在任务栏中最小化时,将其置于最前面
本文关键字:于最 前面 窗体 任务栏 最小化 | 更新日期: 2023-09-27 18:20:36
有没有办法将已经最小化为taksbar的表单放在前面?我尝试了以下代码,但没有成功:
filterForm.Show();
filterForm.Activate();
filterForm.BringToFront();
p.S:这个表单是从另一个表单调用的,用户在其中做一些事情,然后可能会最小化它。我希望一次只打开这个表单的一个实例,所以第二次用户点击显示表单的按钮时,我会检查表单是否已经显示,如果显示,我希望它在前面:
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;
以恢复窗口。如果它最小化了,你首先必须再次提起它。那么CCD_ 2就足够了。