PDA

View Full Version : سوال: نمایش مقدار یک لیبل در فرم دیگر



hackman
یک شنبه 22 اردیبهشت 1392, 18:45 عصر
سلام
من یه لیبل تو فرم 1 دارم که بعد از انجام عملیاتی مقدار اون تغییر میکنه
حالا میخام همین تغییرات رو لیبل دیگه ای که تو فرم 2 هستش بدون بسته شدنه فرم اجام بشه

نمایش هزینه ی عملیات انجام شدس
فرم دوم روی یه مانیتور نمایش داده میشه که مشتری اونو میبینه
فرم اول هم که کاربر میبینه

fool66
یک شنبه 22 اردیبهشت 1392, 18:51 عصر
با ارسال پارامتر سازنده انجام بده

hackman
یک شنبه 22 اردیبهشت 1392, 19:12 عصر
با ارسال پارامتر سازنده انجام بده


چ باید این کارو انجام بدم ؟

fool66
یک شنبه 22 اردیبهشت 1392, 19:45 عصر
توی فرم دوم اینطور می نویسی
public Form2(string labletxt)
{
InitializeComponent();
a1=labletxt;
}
string a1;
private void Form2_Load(object sender, EventArgs e)
{
labelfrom2.Text =a1;
}

و توی فرم اول روی کنترلی که می خوای فرم اول رو بنویسی اینطوری
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(label1.Text);
frm.Show();
}

hackman
یک شنبه 22 اردیبهشت 1392, 19:53 عصر
اینجوری یه فرم دیگه دوباره باز میشه

میخام همونجری که فرم 2 بازه عدد عوض بشه

fool66
یک شنبه 22 اردیبهشت 1392, 19:54 عصر
بهترین کاری که به نظر من میرسید همین بود

rayson
یک شنبه 22 اردیبهشت 1392, 20:19 عصر
سلام.
اگر فرم 2 باز هست :
دیگه نیاز به نمایش درون فرم جدید نمیباشد فقط اطلاعات را درون فرم 2 بعد از ارسال پارامتر ، رفرش کنید .
موفق باشید.

hackman
یک شنبه 22 اردیبهشت 1392, 20:22 عصر
کد رفرش چیه ؟

rayson
یک شنبه 22 اردیبهشت 1392, 20:38 عصر
کد رفرش چیه ؟

2 کد میتونی به کار ببری :

this.update();
this.refresh();

fool66
یک شنبه 22 اردیبهشت 1392, 20:53 عصر
اینجوری یه فرم دیگه دوباره باز میشه

میخام همونجری که فرم 2 بازه عدد عوض بشه

خب کد نویسی کن فرم قبلی رو ببنده جدید رو باز کنه

hackman
یک شنبه 22 اردیبهشت 1392, 21:10 عصر
خب کد نویسی کن فرم قبلی رو ببنده جدید رو باز کنه

آخه میخام تو یه مانیتور دیگه نمایشش بدم اگه بخاد ببنده دوباره بازش کنه رو اون مانیتور نمی افته که

mthreat.info
یک شنبه 22 اردیبهشت 1392, 21:49 عصر
به نظر من یه کلاس درست کن برای رشته هات بعد از فرم اول بریز تو کلاس بعد از کلاس بریز تو فرم دوم

تو کلاس :


public class Class1
{
public static string text;
}

تو فرم اول


Class1.text = Label1.Text;

تو فرم دوم


Label1.Text = Class1.text;

hackman
یک شنبه 22 اردیبهشت 1392, 23:50 عصر
به نظر من یه کلاس درست کن برای رشته هات بعد از فرم اول بریز تو کلاس بعد از کلاس بریز تو فرم دوم

تو کلاس :


public class Class1
{
public static string text;
}

تو فرم اول


Class1.text = Label1.Text;

تو فرم دوم


Label1.Text = Class1.text;


مشکل تو نمایش دادن دوباره ی text بدون بسته شدن فرم 2 هست .
این روش هم کارساز نیست

fool66
دوشنبه 23 اردیبهشت 1392, 00:59 صبح
آخه میخام تو یه مانیتور دیگه نمایشش بدم اگه بخاد ببنده دوباره بازش کنه رو اون مانیتور نمی افته که

یعنی چی ؟؟؟؟

hackman
دوشنبه 23 اردیبهشت 1392, 01:44 صبح
یعنی چی ؟؟؟؟

برنامه دو تا فرم داره
یکیش که فرم اصلیه که اپراتور میبینه
یکیشم فرمیه که مبلغ داخلش نمایش داده میشه
هر دو تا فرم همیشه باید باز باشه و به صورت Duplicate روی دوتا مانیتور نمایش داده میشه
حالا اگه فرم دوم که همون فرم نمایش هزینس با کد نویسی بسته بشه و دوباره باز بشه روی مانیتوری باز میشه که فرم اصلیه برنامه روی اون بازه و این مشکل اصلیه منه

zayens
دوشنبه 23 اردیبهشت 1392, 02:00 صبح
اینکه کاری نداره!!

توی فرم یک ابتدا اینو بذار
public static string Form1LabelValue = "";
بعدش توی همین فرم توی خاصیت textChange برای لیبل اینو بذار:
private void label1_TextChanged(object sender, EventArgs e)
{
Form1LabelValue = label1.Text;
}
حالا روی این فرم صدتا فرم هم اگر باز باشن اگر این لیبل تغییر کنه مقدارش قابله دریافته
اینو هم توی فرم ۲ بذار
labelName.Text = Form1.Form1LabelValue;