PDA

View Full Version : سوال: جواب نگرفتم لطفا حذف نکنید:دسترسی به اشیا فرم دیگر



hahaie
یک شنبه 07 فروردین 1390, 23:38 عصر
ضمن عرض سلام.سایت جای انتقاد داره؟وقتی پست یا سوالی مطرح میشه نمیدونم کی حذفش میکنه(مدیر یا هر کی)؟جالبه علت حذف هم میگند برای اینکه تکراریه.اولا که جستجوگر سایت اصلا بدرد نمیخوره.دومندش با اینکه بالاخره یه طوری مانع حذفش میشیم جوابایی داده میشه که اصلا خودشون هم نفهمیدند چی گفتند(برام اتفاق افتاده بعدا معذرت خواهی کردند).
آقایون ما سوالی پرسیدیم چطوری میشه به یک ابزار یا شی که در یک فرم دیگست دسترسی پیدا کرد؟کسی راه حل مطمئنی داره؟یکی از دوستان گفته بود متغیر رشته ای تعریف کن و ...نمیدونم چه ربطی داشت.یکی دیگه از دوستان نمونه برنامه ای گذاشتند که من این نمونه را در هر پستی دیدم گذاشتند.نمیدونم این نمونه بانک پاسخ هاست.شرمنده باید ببخشید این طوری حرف میزنم.آخه اعصابم خورده.نظر شما چیه؟

shadi khanum
دوشنبه 08 فروردین 1390, 00:04 صبح
ناراحتی نداره که :)
با توجه به چیزایی که از سوالت فهمیدم به نظرم میتونی دو تا کار انجام بدی.
1- فرض کن دو تا فرم داری به اسم Frm1 و Frm2. توی Frm2 یه Textbox داری و میخوای از فرم1 بهش دسترسی داشته باشی. تو فرم2 ، روی اون textbox کلیک کن و خصیصه modifires رو بذار public. حالا تو فرم1 میتونی به textbox اینجوری دسترسی داشته باشی
Form2 f = new Form2();
f.Textbox1.Text = "test";

shadi khanum
دوشنبه 08 فروردین 1390, 00:08 صبح
2- اگه به دلایل امنیتی نمیخوای modifire کنترلت رو public کنی ، تو همون فرم2 که textbox توشه، یه property از نوع textbox تعریف کن واسه دسترسی به textbox ، مثلا به اسم mytextbox. حالا تو فرم 1 :
Form2 f = new Form2();
f.MyTextBox.Text = "test";

اگه منظورت هم چیزی به جز اینه کاملتر توضیخ بده تا دوستان بتونن کمکت کنن

hahaie
دوشنبه 08 فروردین 1390, 09:14 صبح
دوستان.هیچکدام از روشهای بالا جواب نمیدند.امتحان کردم.کسی روشی دیگر داره(البته خودش جواب گرفته باشه)

shadi khanum
دوشنبه 08 فروردین 1390, 09:27 صبح
اینم اون Sample که گفتم

ma.rad
دوشنبه 08 فروردین 1390, 09:48 صبح
اول باید اعصاب خودتو کنترل کنی-
شی شما چیه؟

sarbazi
دوشنبه 08 فروردین 1390, 10:28 صبح
براي اينكه به تمام فرمها در همه قسمت ها دسترسي داشته باشيم بهترين راه حل استفاده از كلاس هاست شما بايد بگيد برنامه اتون چيست و بهتره از كلاس ها استفاده كنيد

shadi khanum
دوشنبه 08 فروردین 1390, 10:44 صبح
متاسفانه من نمیتونم چیزی تو سایت upload کنم. یا مشکل من یا سایت. آدرس ایمیلتون رو بزارید تا واستون یه Sample که هر دو روشی که گفتم و جواب میده به درستی رو واستون بفرستم:)

Amir Oveisi
دوشنبه 08 فروردین 1390, 11:33 صبح
ضمن عرض سلام.سایت جای انتقاد داره؟وقتی پست یا سوالی مطرح میشه نمیدونم کی حذفش میکنه(مدیر یا هر کی)؟جالبه علت حذف هم میگند برای اینکه تکراریه

کاربر گرامی، سوال شما فوق العاده تکراری است و صدها بار در تالار C# مطرح شده و صد ها بار پاسخ داده شده است. بنابراین بر اساس قوانین سایت، پست شما حذف شده. این پست نیز باید حذف بشه اما از اونجایی که دیدم همه سوال شما رو اشتباه پاسخ دادند و شما هم جستجو نکردید (یا درست جستجو نکردید) در این پست جواب سوالتون رو میدم و تاپیک رو قفل می کنم.
در ضمن کاربران محترم سعی کنید تا زمانی که از پاسخ خودتون مطمئن نیستید، پاسخ ندید به سوال.

جواب سوال شما:

فرض کنید در form1 هستید و میخواید به یک باتن با اسم button1 در form2 دسترسی داشته باشید و مقدار Text اون باتن رو تغییر بدید:
(Application.OpenForms["form2"].Controls["button1"] as Button).Text = "new text";

توجه داشته باشید که هیچ نیازی نیست چیزی رو public کنید یا دوباره از form2 شی تعریف کنید چون که فرم2 ای که باز هست خودش یک شی از کلاس Form2 هست.

با احترام به قوانین، به پیشرفت خود کمک کنیم :)

موفق باشید