PDA

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



Mosafers
جمعه 17 خرداد 1392, 23: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
جمعه 17 خرداد 1392, 23:19 عصر
با استفاده از ارسال پارامتر این کارو بکن
توی فرم 1 اینطور بنویس


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


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


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

tvahid
جمعه 17 خرداد 1392, 23: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
جمعه 17 خرداد 1392, 23:43 عصر
مرررررررررررررررررررررررس ی
مثال شما fool66 برعکس کار من بود ولی مثال tvahid عزیز این مشکل رو برام روشن کرد از هر دوتون تشکر میکنم واقعا ممنونم...

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

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