PDA

View Full Version : نمایش فرم



jafari_m246
جمعه 05 مرداد 1386, 06:07 صبح
من با این دستور فرم ام (مثلا فرم جستجو) را نمایش می دهم


form2 frm2 =new form2();
frm2.show();

حالا مشکل ام اینه که با هر بار کلیک روی دکمه یک نسخه از فرم را نشان میدهد.
چطور میتوانم آن را محدود کنم...؟

gomnam
جمعه 05 مرداد 1386, 08:38 صبح
form2 frm2 =new form2();
frm2.showDialog();

ghafoori
جمعه 05 مرداد 1386, 09:38 صبح
دوست عزیز من این کد را پیشنهاد می دم این کد چک کی کند اگر فرم ایجاد نشده بود یا بسته شده بود ان را دوباره ایجاد می کند

Form f;

private void button1_Click(object sender, EventArgs e)
{
if (f == null || f.IsDisposed==true)
{
f = new Form();
f.Show();}

}

mehdi.mousavi
جمعه 05 مرداد 1386, 13:21 عصر
من با این دستور فرم ام (مثلا فرم جستجو) را نمایش می دهم


form2 frm2 =new form2();
frm2.show();
حالا مشکل ام اینه که با هر بار کلیک روی دکمه یک نسخه از فرم را نشان میدهد.
چطور میتوانم آن را محدود کنم...؟

سلام.
من این کد رو پیشنهاد میدم:


if (this.frm != null)
{
this.frm.BringToFront();
return;
}

this.frm = new Form1();
this.frm.FormClosed += new FormClosedEventHandler(delegate(Object source, FormClosedEventArgs ev)
{
this.frm = null;
});

this.frm.Show();

منظور از frm، متغیری از نوع فرمتون هست که یکبار در CTOR کلاس، null شده:


private Form1 frm = null;بدین ترتیب، اگر فرم وجود داشته باشه، فرم موجود بروی صفحه میاد، و اگر وجود نداشته باشه، ساخته میشه و reference به اون در frm ذخیره میشه. هر وقت فرم بسته شد، frm رو null میکنیم که بدونیم دفعه بعد بازهم باید فرم باز بشه.