C# 动态创建Label,及动态label事件

本文介绍了如何在C#中动态创建Label控件,并为每个控件添加点击事件处理。通过封装事件处理方法,可以方便地为多个Label添加Click事件,当点击Label时会弹出对应名字的提示。示例代码展示了如何在Panel上动态生成Label并实现点击事件。
摘要由CSDN通过智能技术生成

参考文章:C#_动态生成控件以及添加事件处理 - 摩根船长 - 博客园

根据上文动态创建的label文章中做了2点的改动,也是为了方便测试。

第一点:switch中的生成我们的label事件。我把他封装起来了以便我新加了一个动态label2的调用。具体的改动就是为每个labels都去写了一个事件语句。看似感觉不会动态的生成我们对应的事件,实际上是可以的。

private void switch_new_label(Label[] labels, int index, int i)
        {
            switch (index)
            {
                case 0:
                    labels[i].Text = "11";
                    labels[i].Name = "11";
                    labels[i].Location = new Point(13 + 130 * i, 15);
                    labels[i].Click += new EventHandler(btn_Click); 
                    //将按钮的方法绑定到按钮的单击事件中btn.Click是按钮的单击事件
                    break;
                case 1:
                    labels[i].Text = "12";
                    labels[i].Name = "12";
                    labels[i].Location = new Point(13 + 130 * i, 15);
                    labels[i].Click += new EventHandler(btn_Click); break;
                case 2:
                    labels[i].Text = "13";
                    labels[i].Name = "13";
                    labels[i].Location = new Point(13 + 130 * i, 15);
                    labels[i].Click += new EventHandler(btn_Click); break;
                case 3:
                    labels[i].Text = "14";
                    labels[i].Name = "14";
                    labels[i].Location = new Point(13 + 130 * i, 15);
                    labels[i].Click += new EventHandler(btn_Click); break;
                case 4:
                    labels[i].Text = "15";
                    labels[i].Name = "15";
                    labels[i].Location = new Point(13 + 130 * i, 15);
                    labels[i].Click += new EventHandler(btn_Click); break;
                default: break;
            }
        }

接着,我们把事件实现一下。

private void btn_Click(object sender, EventArgs e)
        {
            Label label = (Label)sender; //将触发此事件的对象转换为该Button对象
            MessageBox.Show(string.Format("My i value is {0}!", label.Name));
            //Console.WriteLine("My i value is {0}!", label.Name);
        }

运行一下,这里是单击对应的按钮都会提示对应的label.Name的名字的。

 这里,我们能看到我们的panel1模块是空的,现在也为他填上动态生成的label并且也实现他的动态label.click事件。效果大概是这样。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值