PDA

View Full Version : انتساب متن Label داخل UserControl به textbox درون فرم با کلیک روی لیبل



حسین.کاظمی
چهارشنبه 04 اسفند 1395, 20:37 عصر
سلام مجدد
من میخام وقتی بروی مثلا یک لیبل کلیک کنم متن اون لیبیل برابر با تکست یه لیبیل دیگه در فرم جاری بشه.....
کجا باید کد بنویسم توی یوزر کنترل یا فرمی که یوزر کنترل را فراخوانی می کنیم؟؟؟؟


ممنون

Mahmoud.Afrad
جمعه 13 اسفند 1395, 19:29 عصر
میتونید یک رویداد(مثلا با نام LabelClick) به یوزرکنترل اضافه کنید. در رویداد کلیک لیبل ، رویداد یوزرکنترل را فایر کنید.
public class MyUserControl : UserControl
{
public string LabelText
{
get { return label1.Text; }
}

public event EventHandler LabelClick;

protected virtual void OnLabelClick()
{
if (LabelClick != null)
{
LabelClick.Invoke(this, EventArgs.Empty);
}
}

public MyUserControl()
{
InitializeComponent();

this.label1.Click += (sender, args) => { OnLabelClick(); };
}

//...
}
حالا در فرمی که یوزرکنترل رو بهش اضافه کردید، رویداد LabelClick را هندل کنید. مثلا
private void myUserControl1_LabelClick(object sender, EventArgs e)
{
MyUserControl mm= sender as MyUserControl;
MessageBox.Show(mm.LabelText);
}

برای اینکه نیازی به cast شئ sender هم نباشد، میتونید کلاسی از EventArgs مشتق کنید تا بتونید از طریق پارامتر e به مقادیر دسترسی داشته باشید.