PDA

View Full Version : نحوه دسترسی به متغیرهای فرم های یک برنامه؟



پیام حیاتی
سه شنبه 24 اردیبهشت 1392, 15:27 عصر
سلام
دوستان عزیزی در این مورد راهنمایی کردن اما من نتونستم انجام بدم.
برنامه با 3 فرم وجود دارد ، یک متغیر استاتیک در فرم 1 تعریف کرده ایم :


namespace ATM
{
public partial class Form1 : Form
{
public static int return;
public Form1()
{
InitializeComponent();
}

در فرم 3 دکمه ای قرار دادم ، می خواهم زمانی که بر روی دکمه کلیک میشه یک واحد به متغیر return اضافه بشه.

دوستان گفتند به این شکل باید عمل کرد:
نام فیلد استاتیک.نام کلاس فرم
در فرم 3 این کد رو قرار دادم اما بعدش چی ؟ :

Form1.return ؟

دوست دیگری گفتند باید یک شی از فرم یک توی فرم شماره 3 بسازی و بعدش از اون متغیر استفاده کنی :

Form1 f =new Form1() ;
f.return =100;

اما زمان نوشتن کد متغیر return به صورت پیشفرض ناشناخته هست و با خطای زیر روبرو میشم :

Member 'ATM.Form1.return' cannot be accessed with an instance reference; qualify it with a type name instead

تشکر

_behnam_
سه شنبه 24 اردیبهشت 1392, 15:31 عصر
سلام. اگر بخواهید از فرم نمونه بسازید نباید متغییر Static باشد.

پیام حیاتی
سه شنبه 24 اردیبهشت 1392, 16:02 عصر
سلام. اگر بخواهید از فرم نمونه بسازید نباید متغییر Static باشد.
اگر Static نباشد مقدار متغیر با هر بار ورود و خروج از فرم ریسیت می شود (صفر می شود).

_behnam_
سه شنبه 24 اردیبهشت 1392, 16:08 عصر
یک کلاس static بسازید و متغییرهارا درون اون بسازید.

پیام حیاتی
سه شنبه 24 اردیبهشت 1392, 16:22 عصر
یک کلاس static بسازید و متغییرهارا درون اون بسازید.
بعد چطور به متغیرهای کلاس استاتیک در فرم دیگر برای تغییر دسترسی پیدا کنم؟

wolf_majid
سه شنبه 24 اردیبهشت 1392, 17:09 عصر
مثال :
این کد فرم 1:
public static int a = 100;

private void button1_Click(object sender, EventArgs e)
{
Form2 frm2=new Form2();
frm2.ShowDialog();
this.Text = a.ToString();
}
این هم کد فرم 2 :
private void Form2_Load(object sender, EventArgs e)
{
this.Text = Form1.a.ToString();
}

private void button1_Click(object sender, EventArgs e)
{
Form1.a+=100;
}

در ضمن همونطور که آقا بهنام گفتند بهتره متغیر استاتیکتون توی کلاس Program تعریف بشه