نوشته شده توسط
mohammadsadegh996
اون دوتا _TXTForm1 و TXTForm1 واسه چی هستن؟ میشه بیشتر توضیح بدین
برای تغییر opacity فرم والد از فرم فرزند چکار کنم؟
اصلا اگه بخوام از فرم 3 که توسط فرم 2 باز شده تغییرات رو روی فرم 1(فرم اصلی) اعمال کنم، انوقت چکار کنم؟
خیلی واسم مهمه لطفا راهنمایی کنید - با تشکر فراوان
مجددا سلام دوست من ، در خصوص سوال اولتون باید عرض کنم من برای اینکه بتونم پارامتری که برای Constractor مربوط به Form2 ایجاد کرده بودم ( که همون TXTForm1 از نوع Form1 بود ) مقدار دهی کنم متغییری از جنس همون Form1 ایجاد کردم به نام TXTForm1_ که اون رو برابر همون TXTForm1 قرار دادم که اگه توی هرجای فرم2 خواستم پارامتر Form2 رو (TXTForm1) مقدار دهی کنم راحت متغییر TXTForm1_ مقدار دهی کنم و از طرفی هم چون برابر TXTForm1 قرارش دادم پس مستقیما جزو پارامتری که برای Form2 قرار داده بودم هم محسوب میشه (اون کلمه کلیدی this هم اگه برات سوال شده درواقع اشاره داره به فرم جاری مون که اینجا همون Form2 هست) به ویژگی TXTForm1_ زمانی پی میبرید که داخل همون فرم2 یا همون فرم فرزند توی button این دستور رو مینویسید
_TXTForm1.text=textbox1.text;
اینجا ما هر مقداری رو که داخل textbox بنویسیم داخل TXTForm1_ پاس داده میشه و وقتی TXTForm1_ مقدار دهی بشه در واقع TXTForm1 مقدار دهی شده پس ما به این صورت مقدار text مربوط به فرم والد رو تغییر دادیم حالا نکته بعدی که مطرح میشه اینه وقتی شما در فرم والد فرم فرزند رو new میکنید چون ما براش Constractor یا همون تابع سازنده ایجاد کردیم که دارای پارامتر بود ( که تعریفش رو عرض کردم به چه شکل بود ) باید پارامتری از نوع Form بهش بدیم که چون این دستور داخل همون فرم والد تعریف شده من پارامتر this رو که همون به معنی فرم جاری هست رو بهش پاس دادم میتونستی هم بنویسی Form1 مشکلی پیش نمیومد . در خصوص سوال دومتون : دوست من شما وقتی TXTForm1_ مینویسی بعدش نقطه رو میزنی به کلیه خصویات فرم والد دسترسی داری حالا چه میخواد opacity باشه چه Backcolor و چه Text و .. و .. و ..
_TXTForm1.Opacity = .50;
و در خصوص سوال آخرتون هم باید اینطور عرض کنم شما فرض کنید سه تا Form دارید 1 و 2 و3 که Form1 والد و بقیه فرم ها فرزند اون . حالا ما میخوایم توی فرم 3 مشخصات فرم والد رو تغییر بدیم به عنوان مثال همین Opacity بدین صورت عمل میکنیم اول در کلاس Form2 یک پراپرتی تعریف میکنیم بدین صورت
public Form1 MainForm { get; set; }
حالا Constractor پیش فرض اون که داخلش دستور initialize Component هست رو بدین شکل تغییر بدید
public Form2(Form1 mainForm)
{
InitializeComponent();
MainForm = mainForm;
}
داخل کنترلی که فرم 3 رو فراخوانی میکنید اینطور بنویسید
new Form3(MainForm).Show();
حالا داخل فرم 3 بشید و مانند فرم 2 عمل کنید یعنی اول یک پراپرتی در کلاس فرم 3
public Form1 MainForm { get; set; }
بعد تبدیل Constractor پیش فرض
public Form3(Form1 mainForm)
{
InitializeComponent();
MainForm = mainForm;
}
و درآخر یک button ایجاد کنید و داخش اینو بنویسید
MainForm.Opacity = .25;
امیدوارم همیشه پیروز و موفق باشید .