2011-02-02 2 views

ответ

0

Я понимаю, что вы спрашиваете, открывается ли форма 3. Если это неверно, пожалуйста, просветите меня.

Есть, вероятно, десятки способов сделать это, все зависит от того, что вы хотите делать.

Один простой способ будет оставить флаг где-нибудь, скажем, в файле Program.cs:

public static bool Form3IsOpen = false; 

Тогда:

private void Form3_Load(sender object, EventArgs e) 
{ 
    Program.Form3IsOpen = true; 
} 

И:

private void Form3_Close(sender object, EventArgs e) 
{ 
    Program.Form3IsOpen = false; 
} 

Дополнительной:

Вы также можете k ЕЕР ссылки на ваш подчиненный:

В Form1.cs:

private Form2 FormChild; 

//In the function that opens the Form2: 
FormChild = new Form2(); 
FormChild.Show(); 

Form2 будет иметь что-то подобное, чтобы сохранить form3. Если одна форма может открыть несколько, просто используйте массив или коллекцию.

+0

Я хочу понять, что контрольный список активен или нет. – ups

+0

@ups: Я не понимаю, что вы имеете в виду. Можете ли вы подробнее рассказать о том, чего хотите достичь? Возможно, разместите свой код (даже если он не работает)? – MPelletier

0

Когда у меня обычно есть много разных форм и только один экземпляр, который нужно создать, я помещаю их в диктатор и проверяю, есть ли форма.

Что-то вроде этого:

public static Dictonary<string, Form> act_forms_in_app = new Dictonary<string, Form>(); 

сейчас в каждом создании формы я это сделать, как этот

Form1 frm = new Form1(); 
frm.Name = "Myformname" 
//set its properties etc. 
frm.Load => (s,ev) { act_forms_in_app.Add(frm.Name, frm);}; 
frm.Load += new EventHandler(frm_Load); 
frm.Disposed => (s, ev) { act_forms_in_app.Remove(frm.Name)}; 

//your usual form load event handler 
public void frm_Load(object sender, EventArguments e) 
{ 
    ... 
} 

где-то, где вы хотите, чтобы проверить

Form frm = //Your form object 
if(act_forms_in_app.ContainsKey(frm.Name)) 
{ 
    //Perform as required 
} 
+0

Я хочу понять, что контрольный список активен или нет. – ups

1

Если формы вас ссылки MDI child forms, вы можете использовать

Form activeChild = this.ActiveMdiChild; 

еще вы можете использовать следующий код, если не используете дочерние формы MDI.

Form currentForm = Form.ActiveForm; 
+0

Я хочу понять, что контрольный список активен или нет. – ups

Смежные вопросы