PDA

View Full Version : سوال: تغییر دستورات درون رویدادها در کلاس ارث برنده



antisocial
چهارشنبه 02 اردیبهشت 1388, 16:08 عصر
با سلام
ببینید فرض کنید ما سه تا فرم داریم که فرم دوم از اولی ارث میبره،فرم سوم یه فرم مجزاست و فرم اول هم فرم اصلی برنامه است.
ما اومدیم تو رویداد Formclosed مربوط به فرم 1 یه سری دستورات نوشتیم اما میخوایم این دستورات تو همون رویداد (Formclosed)یعنی داخل فرم 2 یعنی فرم ارث برنده اجرا نشه.من اینکار رو با استفاده از مفاهیم Override و Virtual انجام دادم اما مشکل من اینه که همین فرم 2 وقتی از توی فرم 3 صدا زده میشه میخوام دوباره دستوراتش توی همون رویدادش (Formclosed) تغییر کنه یعنی نه دستورات توی کلاس پایه اجرا بشه نه دستورات توی فرم دوم (که تغییرش دادم)که فرم ارث گیرندس باید چیکار کنم؟من دوباره میخوام دستوراتش رو تغییر بدم باید چکار کنم؟
امیدوارم قابل فهم بوده باشه.نمیدونم چه جوری توضیح بدم
من از روش HideMember هم استفاده کردم اما اونم جواب نمیده.از دوستان خواهش میکنم کمک کنند
با تشکر:متفکر::عصبانی++::متفکر:

esmaeily-hosein
چهارشنبه 02 اردیبهشت 1388, 16:18 عصر
من که خوب نفهمیدم ولی مفهومی به اسم shadow داریم شاید به دردت بخوره .


public new void Close()
{
MessageBox.Show("I am close");
}

antisocial
چهارشنبه 02 اردیبهشت 1388, 17:03 عصر
ممنون اما این روش همون Hidemember . این یه اسم دیگشه که من نمیدونستم.
اینو امتحان کردم اما این دیگه اصلا هیچ کاری انجام نمیده.نمی دونم چیکار کنم . . .

mostafaaa
چهارشنبه 02 اردیبهشت 1388, 19:36 عصر
سلام دوست من
وقتی میخوای یه نمونه از فرم دومت بسازی Handler مربوطه رو که نمیخوای توی فرم دومت باشه رو Remove کن.
مثلا به این شکل :

Form2 F2 = new Form2();
F2.Show();
F2.FormClosing -= F2.Form1_FormClosing;
یا علی