有没有办法将已经最小化到 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。然后你也不需要 bool 。像这样:
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();
}
}
关于c# - 在任务栏中最小化表单时将其置于最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914726/