تغییر دستورات درون رویدادها در کلاس ارث برنده
با سلام
ببینید فرض کنید ما سه تا فرم داریم که فرم دوم از اولی ارث میبره،فرم سوم یه فرم مجزاست و فرم اول هم فرم اصلی برنامه است.
ما اومدیم تو رویداد Formclosed مربوط به فرم 1 یه سری دستورات نوشتیم اما میخوایم این دستورات تو همون رویداد (Formclosed)یعنی داخل فرم 2 یعنی فرم ارث برنده اجرا نشه.من اینکار رو با استفاده از مفاهیم Override و Virtual انجام دادم اما مشکل من اینه که همین فرم 2 وقتی از توی فرم 3 صدا زده میشه میخوام دوباره دستوراتش توی همون رویدادش (Formclosed) تغییر کنه یعنی نه دستورات توی کلاس پایه اجرا بشه نه دستورات توی فرم دوم (که تغییرش دادم)که فرم ارث گیرندس باید چیکار کنم؟من دوباره میخوام دستوراتش رو تغییر بدم باید چکار کنم؟
امیدوارم قابل فهم بوده باشه.نمیدونم چه جوری توضیح بدم
من از روش HideMember هم استفاده کردم اما اونم جواب نمیده.از دوستان خواهش میکنم کمک کنند
با تشکر:متفکر::عصبانی++::متفکر:
نقل قول: تغییر دستورات درون رویدادها در کلاس ارث برنده
من که خوب نفهمیدم ولی مفهومی به اسم shadow داریم شاید به دردت بخوره .
public new void Close()
{
MessageBox.Show("I am close");
}
نقل قول: تغییر دستورات درون رویدادها در کلاس ارث برنده
ممنون اما این روش همون Hidemember . این یه اسم دیگشه که من نمیدونستم.
اینو امتحان کردم اما این دیگه اصلا هیچ کاری انجام نمیده.نمی دونم چیکار کنم . . .
نقل قول: تغییر دستورات درون رویدادها در کلاس ارث برنده
سلام دوست من
وقتی میخوای یه نمونه از فرم دومت بسازی Handler مربوطه رو که نمیخوای توی فرم دومت باشه رو Remove کن.
مثلا به این شکل :
Form2 F2 = new Form2();
F2.Show();
F2.FormClosing -= F2.Form1_FormClosing;
یا علی