PDA

View Full Version : سوال: ارسال مقدار جعبه متن به فرم ديگه



m.norouzi67
دوشنبه 23 آبان 1390, 14:49 عصر
من در فرم 1 مقداري در جعبه متن وارد كردم مي خواستم ميشه در فرم2 از مقدار جعبه متن فرم 1 استفاده كرد يا نه:متفکر::متفکر:

solaleh
دوشنبه 23 آبان 1390, 14:57 عصر
بله میشه و حداقل از دو طریق میتونین این کار رو انجام بدین:
1- برای فرم2 یک constructor بسازین که یک متغیر string میگیره و وقتی میخواستین فرم2 رو باز کنین با این constructor اونو show کنین.
2 - TextBox رو در فرم1 public کنین اینطوری در فرمهای دیگه هم بهش دسترسی دارین که اصصصصصصصصصصصلا راه خوبی نیست.
من راه اول رو پیشنهاد میکنم.

shahrzad87
دوشنبه 23 آبان 1390, 15:08 عصر
می شه درباره constructor برای فرم بیشتر توضیح بدین ؟

m.norouzi67
دوشنبه 23 آبان 1390, 15:14 عصر
لطفا ميشه درباره constructor توضيح بيشتري بديد؟؟؟؟

x_epro_x
دوشنبه 23 آبان 1390, 15:16 عصر
سلام
اگه تازه واردی که همون خودت محتویاتش رو دستی بفرست به فرم 2 چون این constructor که دوستمون گفت یکم گیج کنندست:اشتباه:
:خجالت:

solaleh
دوشنبه 23 آبان 1390, 15:25 عصر
هر فرم یک constructor داره که هم نام فرم هست و در اون تابع Initializecomponent(0 رو داریم که وظیفه شکل دهی فرم و کنترلهای اون و تخصیص prperty ها رو دارهودر حالت پیش فرض این constructor هیچ پارامتر ورودی نمیگیره ولی شما بسته به نیازت میتونی constructor خودت رو تعریف کنی.یعنی برای حل مشکل شما:
در فرم 1 میخوایم فرم 2 رو صدا بزنیم:
Form 2 f2 = new Form2(textbox1.Text);
f2.Showdialog();
و در فرم 2 ابتدا construcor موردنظرمون رو تعریف میکنیم:
Public Form2(string val)
{Initializecomponent();
txtval = val;
}
که txtval یک متغیر عمومی از نوع string هست که در فرم 2 تعریف کردیم. حالا تو فرم2 هر جا میخوای به مقدار اون textbox تو فرم1 دسترسی داشته باشی،میتونی از این txtval استفاده کنی.
مشکلی بود بگین تا با هم حلش کنیم.

x_epro_x
دوشنبه 23 آبان 1390, 15:32 عصر
ایول خوب گفتی فقط یه چیزی
تو کدی که دادی حرفی از const نیست بهتره اینجوری بگیم که تو فرم 1 یک شی از کلاس فرم 2 تعریف میکنیم بعدش تو فرم 2 هم متغیری رو به صورت عمومی تعریف میکنیم و بعدش میفرستیم واسه فرم 2 در واقع یک پارامتر واسه فرم 2 میسازیم

ya30ien2
دوشنبه 23 آبان 1390, 15:37 عصر
شاید بهت کمک کنه
http://barnamenevis.org/showthread.php?313334-ورود-اطلاعات-از-فرم-1-به-2

solaleh
سه شنبه 24 آبان 1390, 17:00 عصر
ایول خوب گفتی فقط یه چیزی
تو کدی که دادی حرفی از const نیست بهتره اینجوری بگیم که تو فرم 1 یک شی از کلاس فرم 2 تعریف میکنیم بعدش تو فرم 2 هم متغیری رو به صورت عمومی تعریف میکنیم و بعدش میفرستیم واسه فرم 2 در واقع یک پارامتر واسه فرم 2 میسازیم
اون تابع هم نام با نام Form2 همون constructor برای فرم 2 میباشد...

abdullah20
سه شنبه 24 آبان 1390, 17:16 عصر
textbox1.text(Application.OpenForms["Form2"].Controls["Textbox1"] as TextBox).text();

shahrzad87
سه شنبه 24 آبان 1390, 18:11 عصر
کدتون خطا داره! این کد رو کجا باید نوشت ؟

abdullah20
سه شنبه 24 آبان 1390, 18:30 عصر
تو فرم 1

textBox1.Text = (Application.OpenForms["Form2"].Controls["Textbox1"] as TextBox).Text;