C# 如何在winforms窗口中打开,但如果此窗口已打开,请将其打开
我有一个窗口“Child 1”,它从“Parent”打开。一旦我点击菜单打开“儿童1”,它可以打开几个窗口,如果我点击几次菜单。如何验证窗口“Child 1”是否打开,我们应该直接打开它 我用来打开窗口的代码:C# 如何在winforms窗口中打开,但如果此窗口已打开,请将其打开,c#,winforms,C#,Winforms,我有一个窗口“Child 1”,它从“Parent”打开。一旦我点击菜单打开“儿童1”,它可以打开几个窗口,如果我点击几次菜单。如何验证窗口“Child 1”是否打开,我们应该直接打开它 我用来打开窗口的代码: var ticketTypesForm = new fTicketTypes(); ticketTypesForm.Show(); 只要保留类中的引用,而不是每次创建一个引用。只要保留类中的引用,而不是每次创建一个引用。不要使用var,相反,您可以这样做 fTicket
var ticketTypesForm = new fTicketTypes();
ticketTypesForm.Show();
只要保留类中的引用,而不是每次创建一个引用。只要保留类中的引用,而不是每次创建一个引用。不要使用var,相反,您可以这样做
fTicketTypes ticketTypeForm;
//Some code goes here.
if(ticketTypeForm == null)
ticketTypeForm = new fTicketTypes();
ticketTypeForm.Show();
不要使用var,相反,您可以这样做
fTicketTypes ticketTypeForm;
//Some code goes here.
if(ticketTypeForm == null)
ticketTypeForm = new fTicketTypes();
ticketTypeForm.Show();
调用
应用程序.OpenForms
将为您提供所有打开表单的集合。您只需浏览每个打开的表单,检查是否已创建子表单1。如果是,只需调用.Focus()
方法将其提前显示。如果尚未创建表单,请按照您的意愿创建表单。调用应用程序。OpenForms
将为您提供所有打开表单的集合。您只需浏览每个打开的表单,检查是否已创建子表单1。如果是,只需调用.Focus()
方法将其提前显示。如果尚未创建表单,请按照您的意愿创建表单。再次显示新表单之前,请检查其是否已打开或未使用:
Application.OpenForms.OfType<YOUR_FORM_TYPE>().Any())
Application.OpenForms.OfType().Any())
如果已打开,则忽略该命令,但如果未再次打开,则可以执行以下操作:
ticketTypesForm myTicketTypesForm;
private void OpenDialog(object sender, EventArgs e)
{
if (!Application.OpenForms.OfType<ticketTypesForm>().Any())
{
if (myTicketTypesForm == null)
myTicketTypesForm = new ticketTypesForm();
myTicketTypesForm.Show();
}
else
{
myTicketTypesForm.Focus();
}
}
ticketTypesForm我的ticketTypesForm;
私有void OpenDialog(对象发送方、事件参数)
{
如果(!Application.OpenForms.OfType().Any())
{
如果(myTicketTypesForm==null)
myTicketTypesForm=新的ticketTypesForm();
myTicketTypesForm.Show();
}
其他的
{
myTicketTypesForm.Focus();
}
}
再次显示新表单之前,请检查其是否已打开或未使用:
Application.OpenForms.OfType<YOUR_FORM_TYPE>().Any())
Application.OpenForms.OfType().Any())
如果已打开,则忽略该命令,但如果未再次打开,则可以执行以下操作:
ticketTypesForm myTicketTypesForm;
private void OpenDialog(object sender, EventArgs e)
{
if (!Application.OpenForms.OfType<ticketTypesForm>().Any())
{
if (myTicketTypesForm == null)
myTicketTypesForm = new ticketTypesForm();
myTicketTypesForm.Show();
}
else
{
myTicketTypesForm.Focus();
}
}
ticketTypesForm我的ticketTypesForm;
私有void OpenDialog(对象发送方、事件参数)
{
如果(!Application.OpenForms.OfType().Any())
{
如果(myTicketTypesForm==null)
myTicketTypesForm=新的ticketTypesForm();
myTicketTypesForm.Show();
}
其他的
{
myTicketTypesForm.Focus();
}
}
var ticketTypesForm = new fTicketTypes();
展示
接近
var ticketTypesForm = new fTicketTypes();
展示
接近
但是如何在第一个计划中打开窗口(激活?),但是如何在第一个计划中打开窗口(激活?)如果要在某个事件上打开表单,请确保ticketTypeForm在事件处理程序代码中可见。如果要在某个事件上打开表单,请确保ticketTypeForm在事件处理程序代码中可见。这是解决此问题的原因。感谢链接!不知道Application.OpenForms存在固有问题。感谢您指出正确的方向。:)谢谢你的链接!不知道Application.OpenForms存在固有问题。感谢您指出正确的方向。:)