C# winform Panel控件里面的自定义控件的选择

我做了个自定义控件,自定义控件里面有Lable是动态添加的。我在panel控件里动态的添加自定义控件后我想在我单机自定义控件的事件中获得自定义控件中的lable.text... 我做了个自定义控件,自定义控件里面有Lable是动态添加的。我在panel控件里动态的添加自定义控件后我想在我单机自定义控件的事件中获得自定义控件中的lable.text值。请问大神们我该怎么办?给个思路呗 展开
 我来答
lrh3321
推荐于2016-10-07 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2116万
展开全部
     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);  };

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式