PDA

View Full Version : سوال: بستن یک فرم زمان بسته شدن فرم دیگر



pishraft
شنبه 16 بهمن 1389, 08:34 صبح
سلام
خوبین؟
من دوتا فرم دارم که هر دو Child هستن
اگه بخوام بگم زمانی که فرم اول بسته شد فرم دوم هم اگه باز بود بسته شه چه کدی باید استفاده کنم؟
مرسی

jalalx
شنبه 16 بهمن 1389, 09:41 صبح
علیک السلام،
آره، ترم جدید شروع شده، کلاس انقلابمو دو در کردم، از این بهتر نمیشه!!!


در این مواقع از الگوی Singleton استفاده کنید. الگوی Singleton میگه یه مشخصه ی static داشته باشین و هر بار خواستین وضعیت رو برسی کنید به اون مراجعه کنید. برای مثال میگم:

مثلا توی mainForm دوتا فرم های form1 و form2 دارین. خب اینطوری تو فرم اصلی تعریف کنید:


using System;
using System.Windows.Forms;

public class MainForm : Form
{
public static Form1 form1Instance = null;
public static Form2 form2Instance = null;

public MainForm()
{
}

private void btnOpenForm1_Click(object sender, EventArgs e)
{
if (form1Instance == null)
form1Instance = new Form1();

form1Instance.Show();
}

private void btnOpenForm2_Click(object sender, EventArgs e)
{
if (form2Instance == null)
form2Instance = new Form1();

form2Instance.Show();
}
}

public class Form1 : Form
{
public Form1()
{
}

protected void form1_Closing(object sender, EventArgs e)
{
if (MainForm.form2Instance != null)
{
MainForm.form2Instance.Close();
MainForm.form2Instance = null;
}
}
}

public class Form2 : Form
{
public Form2()
{
}

protected void form2_Closing(object sender, EventArgs e)
{
if (MainForm.form1Instance != null)
{
MainForm.form1Instance.Close();
MainForm.form1Instance = null;
}
}
}