C# winform Panel控件里面的自定义控件的选择
我做了个自定义控件,自定义控件里面有Lable是动态添加的。我在panel控件里动态的添加自定义控件后我想在我单机自定义控件的事件中获得自定义控件中的lable.text...
我做了个自定义控件,自定义控件里面有Lable是动态添加的。我在panel控件里动态的添加自定义控件后我想在我单机自定义控件的事件中获得自定义控件中的lable.text值。请问大神们我该怎么办?给个思路呗
展开
1个回答
展开全部
public partial class MyLabel : UserControl
{
Label[] labels;
public MyLabel()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
labels=new Label[10];
for (int i = 0; i < labels.Length; i++) {
labels[i]=new Label();
labels[i].Click+= delegate(object sender, EventArgs e) { OnLabelClick(sender); };
}
}
public event TextEventHandler LabelClick;
void OnLabelClick(object sender){
if ((LabelClick!=null)&&sender is Label ){
LabelClick.Invoke(this,new TextEventArgs((sender as Label).Text));
}
}
}
public class TextEventArgs:EventArgs{
public string Text{get;set;}
public TextEventArgs(string text)
{
this.Text = text;
}
}
public delegate void TextEventHandler(object sender,TextEventArgs e);
使用自定义的LabelClick事件,传递Text值,每添加一个Label就把这个Label的Click事件设为delegate(object sender, EventArgs e) { OnLabelClick(sender); };
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询