PDA

View Full Version : سوال: استفاده از یک متغیر در دو محل (مشکل فوری)



araz_s
پنج شنبه 21 مرداد 1389, 00:33 صبح
سلام
وقتی برای یک botton یک سری دستورات می نویسم و تعدادی متغیر تو اون تعریف می کنم و یه سری عملیات رو اونا انجام می دم، دیگه نمیشه از اون متغیر ها تویه یه botton دیگه استفاده کرد.
راه حلش چیه؟

vandermond
پنج شنبه 21 مرداد 1389, 00:45 صبح
دوست عزيز
رويداد كليك باتن ها به صورت پيشفرض به صورت private هستش ميتونيد اون رو به public تغيير بدي تا دسترسي داشته باشه.

sayan
پنج شنبه 21 مرداد 1389, 00:53 صبح
راه حلش اینکه شما متغیرهای مورد استفاده در button را در داخل فرمت (که یک کلاس کلی محسوب میشه) تعریف کنی نه در داخل button حالا اینجوری دیگه همه ی کنترل های اون Form به متغییرهات دسترسی دارند.
در مورد دستورات هم شما متد تعریف کن و اون کدهای مشترک رو داخل متد بنویس و هرجا که خواستی فقط اون متد رو صدا بزن.
اینجوری شما یه متد مینویسی ولی هر جا که دوست داشتی ازش استفاده میکنی:لبخندساده:

araz_s
پنج شنبه 21 مرداد 1389, 12:17 عصر
راه حلش اینکه شما متغیرهای مورد استفاده در button را در داخل فرمت (که یک کلاس کلی محسوب میشه) تعریف کنی نه در داخل button حالا اینجوری دیگه همه ی کنترل های اون Form به متغییرهات دسترسی دارند.
در مورد دستورات هم شما متد تعریف کن و اون کدهای مشترک رو داخل متد بنویس و هرجا که خواستی فقط اون متد رو صدا بزن.
اینجوری شما یه متد مینویسی ولی هر جا که دوست داشتی ازش استفاده میکنی:لبخندساده:
سایان عزیز متغیر ها رو تو کلاس تعریف می کنم، فقط مشکل من اینه که وقتی تویه یه باتن مقدار دهی می شن، دیگه اون مقدار رو تو باتن دیگه ندارن و نمیشه از اونا استفاده کرد.

araz_s
پنج شنبه 21 مرداد 1389, 17:35 عصر
دوست عزيز
رويداد كليك باتن ها به صورت پيشفرض به صورت private هستش ميتونيد اون رو به public تغيير بدي تا دسترسي داشته باشه.
با این کار هم امکان دسترسی نیست، اگه امکانش باشه یه کد ساده برام بزارین.

vandermond
پنج شنبه 21 مرداد 1389, 17:50 عصر
دوست عزيز اون روشي كه من گفتم اصولي نيست و مغاير با اصول هم هستش يه خورده.
با اين چه مشكلي داري:

public int Num;
private void button2_Click(object sender, EventArgs e)
{
Num = 10;
label1.Text = Num.ToString();
}
private void button3_Click(object sender, EventArgs e)
{
Num = 20;
label1.Text = Num.ToString();
}
private void button4_Click(object sender, EventArgs e)
{
label2.Text = Num.ToString();
}
اين ها توي كلاس Form1 نوشته شدن. يك متغير public كه توي تمام متدهاي اين كلاس هم قابل دسترسي هستش و اتفاقا باتن شماره 4 رو گذاشتم كه ببيني مقدار متغير اگه توي باتن اول يا دوم تغيير كنه، باتن 4 هم مقدار نهايي يعني مقدار تغيير يافته رو نشون ميده.

میلاد قاضی پور
پنج شنبه 21 مرداد 1389, 17:58 عصر
از پراپرتی استفاده کنید به جاش!

vandermond
دوشنبه 25 مرداد 1389, 03:02 صبح
مرسی از راهنمایی شما vandermond (http://barnamenevis.org/forum/member.php?u=71531) عزیز.
مشکل حل شد.
خواهش ميكنم. يه روزي هم من مشكل دارم شما حل ميكنيد:چشمک:.
در ضمن:
قوانين كلي سايت:
قانون شماره 17
برای تشکر از دیگر کاربران روی تصویر http://www.barnamenevis.org/forum/images/buttons/post_thanks.gif زیر مطلب فرد مورد نظر کلیک کنید.:چشمک: