PDA

View Full Version : انتقال مقادیر از یک فرم به فرم دیگر



shima2006
یک شنبه 06 تیر 1389, 12:15 عصر
سلام دوستان
من می خوام مقدار Textbox1 در Form1 رو به متغیری به نام UserName در Form2 انتقال بدم به همین منظور تابع زیر را در Form1 نوشتم :



Public String GetUsername()
{
return Tusername.text;
}

و در Form2 کد زیر را نوشتم :


Form1 formlogin=new Form1();
String username=formlogin.GetUsername();

ولی مشکل اینجاست که مقدار Textbox1 در متغیر username قرار نمی گیرد !!! چطوری می تونم مقدار این تکست با کس رو به فرم دیگری منتقل کنم ؟؟ آیا این روش درست است؟؟؟

mahdi87_gh
یک شنبه 06 تیر 1389, 12:23 عصر
وقتی شما از دستور new استفاده میکنید متغیر جدیدی ایجاد می شود و لذا حافظه ای که به آن اختصاص داده می شود با قبلی فرق میکند. به همین خاطر کد شما جواب نمی دهد. به آدرس زیر یه سر بزنید
http://barnamenevis.org/forum/showthread.php?t=228821

amin1000
یک شنبه 06 تیر 1389, 12:35 عصر
http://barnamenevis.org/forum/showthread.php?t=180582&highlight=%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C+%D8 %A7%D8%B4%DB%8C%D8%A7

shima2006
یک شنبه 06 تیر 1389, 12:46 عصر
کد:
((Application.OpenForms["form1"] as Form1).Controls["txt1"] as TextBox).Text = "sometext";
form1 نام فرم شماست و txt1 نام تکستباکس شما
موفق باشید


راستش من از این کد زیاد سر در نیاوردم ، این کد رو باید کجا بنویسم ؟ اصلا این کد چیکار میکنه؟:افسرده:

پایلوت
یک شنبه 06 تیر 1389, 13:53 عصر
سلام
در فرم 1 یک string از نوع public تعریف کنید (mystr)حالا در فرم 2 در رویداد مثلا button1 بنویسید:
form1 fr1=new form1
fr1.mystr=txt1.rext
به همین سادگی
txt1 نام textbox ما در فرم 2 است حالا میتونید در فرم 1 مقدار mystr رو مثلا برای یک label بکار برید .
label1.text=mystr
موفق باشید

bpzone
یک شنبه 06 تیر 1389, 14:17 عصر
ابتدا فرم 2 رو تعریف کنید
و تابع سازنده اون رو به شکل زیر تغییر بدید



public Form2(string s)
{
InitializeComponent();
textBox1.Text = s;
}
حالا در فرم 1 ، وقتی می خواهید فرم 2 رو ایجاد کنی، بصورت زیر اقدام کن



private void button1_Click(object sender, EventArgs e)
{
Form2 frm_T = new Form2(textBox1.Text);
frm_T.ShowDialog();
}
حالا وقتی فرم 2 رو فراخوانی می کنی، محتوای textbox فرم 1 در textbox فرم 2 نمایش داده میشه.
موفق باشی

میلاد قاضی پور
یک شنبه 06 تیر 1389, 16:14 عصر
شما یه متغیر پابلیک در فرم دوم تعریف کنید . و هنگام کلیک باتون فرم یک بگید اون متغیر که در فرم دوم هست برابر مقدار این تکس باکس باشه .



//dar form 2
public string un;

//dar form 1
form2 f2=new form2();
f2.showdialog();
f2.un=this.textbox1.text;

shima2006
دوشنبه 07 تیر 1389, 09:13 صبح
از تمام دوستانی که کمک کردن متشکرم
دوستان من تمام روشها رو امتحان کردم
تنها روشی که جواب داد روش bpzone عزیز بود ، با اینکه بقیه روشها درست به نظر می رسن ولی نمی دونم چرا درست جواب نمی دن مثلا تویه روشی که اوج بلند گفتن متغیر un مقدار نمی گیره و همیشه خالیه!!!!

mohammad meta
دوشنبه 07 تیر 1389, 09:40 صبح
دوست عزیز در فرم اول متغییری را که می خواهی در فرم 2 ببینی به صورت public static string txt تعریف کن در form2 به این شکل به آن دسترسی پیدا کن
form1.txt
موفق باشید

Salar Ashgi
دوشنبه 07 تیر 1389, 09:45 صبح
همانطور که mohammad meta (http://www.barnamenevis.org/forum/member.php?u=57116) عزیز گفتن ، بنظر من راحتترین و مناسبترین روش استفاده از متغیرهای

Static هستش .

اَرژنگ
دوشنبه 07 تیر 1389, 11:31 صبح
راحترین بله، مناسبترین جواب ، جوابی است که به توسعه ذهنی و پیشرفت در برنامه نویسی کمک کند.
متغییرهایه استاتیک بازمانده‌ای از زمان غیره شیگرائی هستند، استفاده بیرویه سطح یادگیری را پائین میارند.

ebrahim.rayatparvar
دوشنبه 07 بهمن 1398, 16:36 عصر
سلام دوست عزیز.
برای انتقال داده از فرمی به فرمدیگه می تونی به دوروش که در آموزش زیر گفته شده استفاده کنی.

لینک (http://www.zangclass.com/send-data-other-form/)