PDA

View Full Version : سوال: انتقال مقادیر متغیر بین فرم ها



Xartemisx
جمعه 20 تیر 1393, 15:16 عصر
سلام دوستان
هر چند میدونم این سوال خیلی تکراریه ولی به مشکلی برخوردم که ناچارم اینجا مطرح کنم
دو فرم دارم، اطلاعات تکست باکس فرم دوم رو میخوام اول به متغیری در فرم اول بریزم و بعد در لیبل ازش استفاده کنم
اومدم تو فرم دوم اول این کد رو نوشتم:
public static string m;
و در رویداد باتن فرم دوم هم این کد:
m=textbox1.text
this.close()
در فرم اول هم در قسمتی که مقادیر و اطلاعاتو به لیبل میدم قبلش ازین دستور استفاده کردم:
string j;
j=form2.m;
و بعد هم j رو در کنار بقیه اطلاعات به لیبل ریختم
اما مشکل اینجاست که وقتی اطلاعاتی داخل تکست باکس میزنم متغیرا خالی میمونن و مقداریو بر نمیگردونن، اشکال کار کجاست؟

mz6488
جمعه 20 تیر 1393, 20:17 عصر
خوب همون اول متغیر رو تو کلاس از نوع استاتیک ذخیره کن

golestan1
جمعه 20 تیر 1393, 20:33 عصر
ببین چیزی که دنبالشی همینه

Xartemisx
شنبه 21 تیر 1393, 01:51 صبح
برنامه شما رو دیدم صحیحه، منم دقیقا همینو نوشتم منتها متغیر m خالیه، مقدار تکست باکس به m نمیریزه
مشکل کجاست؟!!

Babak-Magic
شنبه 21 تیر 1393, 07:44 صبح
درود
بهترین روش استفاده از
Constructor (http://msdn.microsoft.com/en-us/library/ace5hbzh.aspx)است
موفق باشید

juza66
شنبه 21 تیر 1393, 08:18 صبح
ببین چیزی که دنبالشی اینه:!

http://charp.persiangig.com/Download/WindowsFormsApplication1.rar

golestan1
شنبه 21 تیر 1393, 14:21 عصر
برنامه شما رو دیدم صحیحه، منم دقیقا همینو نوشتم منتها متغیر m خالیه، مقدار تکست باکس به m نمیریزه
مشکل کجاست؟!!

در نمونه برنامه ای که گذاشتم مقادیر تکست باکس ابتدا به m و بعد در متغییری در فرم 1 میریزه
البته مقادیر m رو می تونی مستقیما به لیبل پاس بدی مثل label1.Text = "yeganeh" + Form2.m;

همان طور که دیدی نمونه برنامه خواسته شما رو انجام میده اما اگه هنوز نتونستی مشکل کد خودت رو حل کنی نمونه برنامه رو قرار بده تا راهنمایی بشه

Xartemisx
شنبه 21 تیر 1393, 22:27 عصر
مشکل کارم اینجا بود که من در قسمتی از برنامم از دستور get set استفاده میکردم و میخواستم در قسمت set که محتویات لیبل مشخص میشد ازین متغیر هم استفاده کنم، وقتی متغیر رو خارج از دستور ست گت استفاده کردم جواب داد و مشکلی نداشت
گمان کردم که شاید باید در بخش get با دستور return ابتدا مقدار متغیر رو بگیرم اما خب، دستور set get رو در یک خاصیت که خودم تعریف کردم و از نوع int بود نوشتم و با ارور مواجه شدم
اگر نیازه کد اون قسمتو میذارم براتون تا به راه حل برسیم