PDA

View Full Version : سوال: نحوه ارسال پارامتر به فرم دیگر



zimzim
دوشنبه 11 بهمن 1389, 01:20 صبح
سلام
چه جوری می تونم یه مقداری رو به یک فرم دیگر ارسال کنم ودر آن فرم ازاین مقدار چگونه می تونم استفاده کنم ؟

ممنون میشم راهنماییم کنید

mohammad_2039
دوشنبه 11 بهمن 1389, 07:05 صبح
با سلام
دوست عزیز شما باید از متغیر Static استفاده کنید. فرض کنید که در فرم شماره 1 قرار دارید ، بالای فرم زیر nameSpace در سطح کلاس فرم 1 یه متغییر مثلا به این شکل تعریف کنید


public static int a=0;

حالا وقتی مقدار مورد نظر رو در این فرم به متغییر دادید به فرم شماره2 برید و در اونجا


Form1.a;

حالا میتونی مثلا این مقدار رو تو یه متغییر دیگه بریزی یا هر کار دیگه ای که خواستی. فقط توجه کن که متغییر Static مقدار خودش رو تا پایان عمر Application حفظ میکنه. پس سعی کن مقادیر بزرگ باهاش جابجا نکنی یا اگر مجبور بودی، بعد از استفاده متغییر رو خالی کن.

mrsalam
دوشنبه 11 بهمن 1389, 07:36 صبح
یه راه اصولی اینه که از یک کلاس عمومی استفاده کنی و مقادیرت را در متغیرهای ستاتیک اون بریزی در اینصورت همه اشیا می تونن به مقادیر اون کلاس دسترسی داشته باشن
اگه خواستی مثلا می زنم

Programmer 1
دوشنبه 11 بهمن 1389, 07:43 صبح
سلام ،

مثلا فرض كنيد شما دو فرم داريد ، در فرم اول يك button و يك Textbox و در فرم دوم يك Label ، ما ميخوايم بازدن دكمه فرم اول متن داخل تكست باكس به فرم دوم ارسال شود و در ليبل آن نمايش داده شود ، براي اين كار يك property در فرم دوم تعريف ميكنيم :


public static string strText { get; set;{ }

حالا روي دكمه فرم اول دوبار كليك كنيد تا وارد متند كنترل رويداد آن شويد آنجا كد زير را مينويسم :


Form2 objFrm2 = new Form2();
objFrm2.strText = textBox1.Text;
objFrm2.Show();


حالا در متد لود فرم دوم كد زير را بنويسيد :


label1.Text = strText;

خوب همه كار همين بود ، من برنامه رو هم ضميمه كردم ، باز هم اگر سوالي بود در خدمتم .

با تشكر /.

shuriken
دوشنبه 11 بهمن 1389, 07:48 صبح
شما میتونی برای فرمی که میخوای بهش مقدار رو پاس بده یک سازنده تعریف کنی که مقادیر
مورد نظرتو بعنوان پپارامتر میگیره.
یا میتونین در اون فرم یک تابع public تعریف کنید که مقادیر رو میگیره و به متغیر های مورد نظرتون در
form2 اختصاص میده.
البته روشهایی که دوستان گفتن هم کاملا درسته.

ehsanara
دوشنبه 11 بهمن 1389, 08:16 صبح
استفاده از Class روش بهتریه ، شما میتونی تو هر فرمی که میخوای متغیر رو مقدار دهی کنی و هرجایی هم که بخوای ازش استفاده کنی
اینو تو Class تعریف می کنی:


private static string Str;
public static string StrVal
{
set
{ Str = value; }
get
{ return Str; }
}


اینم برا مقدار دهی هرجایی که خواستی:



Class1.StrVal = "Test";
Class1.StrVal = TextBox1.Text;


اینم خواندن از Class



Label1.Text = Class1.StrVal;
string StrTest = Class1.StrVal;