PDA

View Full Version : دوباره load شدن form



yardel
شنبه 12 اردیبهشت 1388, 08:28 صبح
سلام دوستان
من یک فرم دارم به نام form1 که از طریق منو ها و وارد کردن username , password وارد صفحه مورد نظر می شوم.(صفحاتی به ترتیب به نام Form2,UserForm).
وقتی که به صفحه قبل بر می گردم و میخوام دوباره عملیات قبلی رو اجرا کنم یعنی با استفاده از منو به صفحات مورد نظر برم با پیغام زیر روبرو میشوم

objectDisposedException was unhandled

cannot access a disposed object
object name:Form2

لطفا کمکم کنید

NewFoxStudent
شنبه 12 اردیبهشت 1388, 08:33 صبح
منظورتون اینه که از فرم 2 برمیگردید و دوباره میخواهید فرم 2 باز بشه
اگه درست متوجه شده شده باشم
احتمالا فرم2 رو Close میکنید و دوباره Show نمیکنید

yardel
شنبه 12 اردیبهشت 1388, 14:04 عصر
بله دوست عزیز .از فرم 2 برمی گردم به فرم 1 که از منو یک زیر منوی دیگه ای رو انتخاب کنم که دوباره به فرم 2 برم که این مشکل پیش میاد.

NewFoxStudent
شنبه 12 اردیبهشت 1388, 15:23 عصر
ممکنه کدتون رو اینجا بزارید

حامد مصافی
شنبه 12 اردیبهشت 1388, 15:49 عصر
شما یک شی را با استفاده از متد Dispose نابود کرده اید، اما سعی می کنید مجدداً بدان دسترسی پیدا کنید (مثلاً آن را نمایش بدهید) بدیهیست که قبل از انجام این کار باید یک نسخه جدید از آن شی ایجاد کنید.

yardel
شنبه 12 اردیبهشت 1388, 17:32 عصر
دوست عزیز من این کاری که شما میگید رو نکردم.لطفا بیشتر توضیح بدید

حامد مصافی
شنبه 12 اردیبهشت 1388, 17:44 عصر
تمنا دارم دوست عزیز، لطفاً شما بیشتر توضیح بدید!
شما این کار را به نحوی انجام دادید، طبیعی است که خودتان خبر نداشته اید، اما چون این کار را انجام داده اید به این خطا بر خورد کرده اید. اما اینکه چگونه این کار را انجام داده اید سوالیست که بعد از مشاهده اعمال انجام گرفته توسط شما می توان بدان پاسخ داد. پس در مورد اینکه دقیقاً چکار کرده اید توضیحاتی بنویسید و در صورت امکان کد قسمت نمایش فرم جدید را قید کنید.
با تشکر

yardel
چهارشنبه 16 اردیبهشت 1388, 09:30 صبح
in company form:
public ComboBox combCompany
{
get { return cmbCompany; }
set { cmbCompany= value; }
}
in form1:
Company frmCompany = new Company();
private void mahanMENU_Click(object sender, EventArgs e)
{
frmCompany.Show();
frmCompany.combCompany.Text = "ماهان";
}
private void asemanMENU_Click(object sender, EventArgs e)
{
frmCompany.Show();
frmCompany.combCompany.Text = "آسمان";
}
private void kishAIRmenu_Click(object sender, EventArgs e)
{
frmCompany.Show();
frmCompany.combCompany.Text = "كيش اير";
}
private void kaspianMENU_Click(object sender, EventArgs e)
{
frmCompany.Show();
frmCompany.combCompany.Text = "كاسپين";
}

حامد مصافی
چهارشنبه 16 اردیبهشت 1388, 09:46 صبح
in company form:
public ComboBox combCompany
{
get { return cmbCompany; }
set { cmbCompany= value; }
}
in form1:
Company frmCompany;
private void mahanMENU_Click(object sender, EventArgs e)
{
frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "ماهان";
}
private void asemanMENU_Click(object sender, EventArgs e)
{
frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "آسمان";
}
private void kishAIRmenu_Click(object sender, EventArgs e)
{
frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "كيش اير";
}
private void kaspianMENU_Click(object sender, EventArgs e)
{
frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "كاسپين";
}

happy65_sh
چهارشنبه 16 اردیبهشت 1388, 09:51 صبح
دوست عزیز شما فقط یک نمونه از فرمتان را می سازید که آنهم وقتی فرم 2 را می بندید از بین می رود(Dispose می شود
اگر با کدی که شما نوشته اید بدون بستن فرم 2 روی منو های مختلف کلیک کنید می بینید مشکلی به وجود نمی آید.اگر هم دوست دارید فرم 2 راببندید و مجددا وارد آن شوید باید هر بار یک نمونه جدید از آن بسازید.مانند زیر:


in company form:
public ComboBox combCompany
{
get { return cmbCompany; }
set { cmbCompany= value; }
}
in form1:
private void mahanMENU_Click(object sender, EventArgs e)
{
Company frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "ماهان";
}
private void asemanMENU_Click(object sender, EventArgs e)
{
Company frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "آسمان";
}
private void kishAIRmenu_Click(object sender, EventArgs e)
{
Company frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "كيش اير";
}
private void kaspianMENU_Click(object sender, EventArgs e)
{
Company frmCompany = new Company();
frmCompany.Show();
frmCompany.combCompany.Text = "كاسپين";
}

yardel
چهارشنبه 16 اردیبهشت 1388, 12:05 عصر
دوست عزیزم کمال تشکر از شما دارم.مشکلمو حل کردید