PDA

View Full Version : سوال: دریافت متغیر از فرم showdialog شده ؟



Mosafers
شنبه 18 خرداد 1392, 00:04 صبح
سلام ببخشید من 2 تا فرم دارم فرم1 و فرم2 :
فرم1 فرم2 رو به صورت showDialog باز کرده میخوام با کلیک روی دکمه فرم2 یه چیزی در textbox فرم زیرین که فرم1 هستش بنویسه اما نمیشه؟

از این روش استفاده کردم اما نشد ! :متفکر:
کد فرم1 :
public string name { get; set; }

کد فرم2 :
Form1 f = new Form1();
f.usernames = "ali";

خواهش میکنم اگه میشه یه مثال بزنید...

fool66
شنبه 18 خرداد 1392, 00:19 صبح
با استفاده از ارسال پارامتر این کارو بکن
توی فرم 1 اینطور بنویس


public Form1(string Tusername)
{
InitializeComponent();
username= Tusername;
}
public string username;


و توی دکمه فرم 2 اینطوری بنویس


Form1 sss = new Form1(TextBox1.text);
sss.ShowDialog();

tvahid
شنبه 18 خرداد 1392, 00:22 صبح
میتونی از سازنده ها استفاده کنی:

توی فرم 2 یه متغیر سراسری و یه سازنده به شکل زیر تعریف کن:
TextBox txt;
public Form2(TextBox _txt)
{
InitializeComponent();
txt = _txt;
}

توی کد دکمه ی فرم 2 هم اینو بنویس:
txt.Text = "ali";

فراخوانی فرم 2 از فرم 1 رو به این شکل تغییر بده:
Form2 frm = new Form2(textBox1);
frm.ShowDialog();

Mosafers
شنبه 18 خرداد 1392, 00:43 صبح
مرررررررررررررررررررررررس ی
مثال شما fool66 برعکس کار من بود ولی مثال tvahid عزیز این مشکل رو برام روشن کرد از هر دوتون تشکر میکنم واقعا ممنونم...

فقط ببخشید روشی غیر از این نیست چون برای چند تا شی یه خورده گنگ و سخت میشه؟

tvahid
شنبه 18 خرداد 1392, 00:49 صبح
میتونی به جای ارسال textbox از مجموعه ای از کنترلها استفاده کنی و یا اینکه یه آرایه از رشته رو بفرستی.
البته این نکته رو به یاد داشته باش که در اینجا نمیتونی فقط یک رشته رو بفرستی
مثلا string یا int نمیشه ولی واسه آرایه ای از string[] یا int[] جواب خواهد داد.