Если вы хотите создать новую форму, только если он еще не открыт вы можете сделать это:
ShowFormIfNotOpen(this,typeof(Form1));
public static void ShowFormIfNotOpen(Form mainform,Type type)
{
foreach (Form item in mainform.MdiChildren)
if (item.GetType() == type)
{
item.Activate();
return;
}
Form form = Activator.CreateInstance(type) as Form;
form.MdiParent = mainform;
form.Show();
}
Update
1) Добавить публичный статический BOOL поле/свойство в вашем форма (IsAlreadyShown)
public static bool IsAlreadyShown { get; set; }
2) Установите его истинным в конструктор формы
public Form1()
{
InitializeComponent();
IsAlreadyShown = true;
}
3) Вызов ShowForm1 (это);
public static void ShowForm1(Form parentForm)
{
if(Form1.IsAlreadyShown ==true)
return;
Form1 objForm1 = new Form1();
objForm1 .MdiParent = parentForm;
objForm1 .Show();
}
Каждый раз, когда вы запустите этот код, вы увидите новая форма, что именно вы хотите? –
Я хочу, чтобы он больше никогда не открывался, когда я нажимаю, чтобы открыть. и если я закрываю форму, он также достигнет в другом месте, как можно остановить – Ghost