PDA

View Full Version : سوال: نحوه ارتباط tab page جاری با user control



ro3vayedel
چهارشنبه 21 آبان 1393, 17:15 عصر
125571

با سلام همانطوری که توی تصویر میبینید قسمتی که با رنگ قرمز دورش مشخص شده user control و توی هر کدوم از tab page ها همین یوزرکنترل هست اولین تب با رنگ سبز مشخص شده...
label که با رنگ آبی مشخصش کردم بایند شده به دیتاگرید مربوط به نام مشتری و با تغییر انتخاب در دیتاگرید ویو لیبل هم عوض میشه...
حالا سوالم اینه...
میخوام وقتی انتخاب نام مشتری تو دیتاگریدویو عوض میشه عنوان tab page جاری خودش رو با نام مشتری عوض کنه ...
یعنی در بالا وقتی که علی منصوری انتخاب میشه عنوان مشتری 1 که به رنگ سبز مشخص شده تبدیل بشه به علی منصوری و توی tab بعدی اگر سجاد بستام انتخاب بشه عنوان مشتری 2 تبدیل بشه به سجاد بستام و تمام tab page ها هم همینطور...
باز تکرار میکنم تمام تب ها دقیقا یکسانند...
نام یوزرکنترلم usercontrol 1
نام دیتاگرید ویو dgvCustomer
نام لیبل بایند شده labelCustomer
نام فرم Main
نام تب کنترل هم پیش فرض
ممنون میشم کمکم کنید...

hamid_hr
چهارشنبه 21 آبان 1393, 18:19 عصر
باید برا یوزر کنترلت یه ایونت تعریف کنی
بعد بیای ایونت رو تو فرم اصلیت هندل کنی
وقتی نام مشتری توی یوزر کنترل عوض میکنی اون ایونت اجرا بشه
و تو فرم اصلی تون تو ایونت تب پیج مورد نظر تتیترش عوض بشه

ro3vayedel
چهارشنبه 21 آبان 1393, 18:28 عصر
باید برا یوزر کنترلت یه ایونت تعریف کنی
بعد بیای ایونت رو تو فرم اصلیت هندل کنی
وقتی نام مشتری توی یوزر کنترل عوض میکنی اون ایونت اجرا بشه
و تو فرم اصلی تون تو ایونت تب پیج مورد نظر تتیترش عوض بشه

میشه با کد توضیح بدید...
خوب event selection change دیتاگرید ویو هست دیگه ... event جدید واسه چی؟ نمیشه همون event رو هندل کنم؟؟؟
چطوری باید event رو هندل کرد:خجالت:

hamid_hr
چهارشنبه 21 آبان 1393, 19:00 عصر
شما توی یوزر کنترلت اینوو بنویس



public event EventHandler ChangeSelect;
private string Name
{
set
{
if (ChangeSelect != null)
ChangeSelect(value, EventArgs.Empty);
}
}




بعد تو فرم اصلیت اینا رو بنویس


UserControl1.ChangeSelect += UserControl1_ChangeSelect;



اینم تابع



void UserControl1_ChangeSelect(object sender, EventArgs e)
{
tabPage1.Text = sender.ToString();
}




خب حالا تو یوزر کنترلت هرجا بنویسی Name == "xxxxx" اون کپشن تب پیج مال فرم اصلیتون عوض میشه

ro3vayedel
چهارشنبه 21 آبان 1393, 19:56 عصر
شما توی یوزر کنترلت اینوو بنویس



public event EventHandler ChangeSelect;
private string Name
{
set
{
if (ChangeSelect != null)
ChangeSelect(value, EventArgs.Empty);
}
}




بعد تو فرم اصلیت اینا رو بنویس


UserControl1.ChangeSelect += UserControl1_ChangeSelect;



اینم تابع



void UserControl1_ChangeSelect(object sender, EventArgs e)
{
tabPage1.Text = sender.ToString();
}




خب حالا تو یوزر کنترلت هرجا بنویسی Name == "xxxxx" اون کپشن تب پیج مال فرم اصلیتون عوض میشه


دررررود بر شرفتون...
پدرم دراومد هیچکس بلد نبود چکار باید کرد...
مرسی کاملا درست جواب داد.