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

 更新时间:2025年04月02日 16:36:30   作者:小北学IT  
这篇文章主要介绍了C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

根据上文动态创建的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事件。

效果大概是这样

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#实现SMTP邮件附件发送功能详解

    C#实现SMTP邮件附件发送功能详解

    这篇文章主要为大家详细介绍了如何利用C#实现SMTP邮件附件发送的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • C#实现3步手动建DataGridView的方法

    C#实现3步手动建DataGridView的方法

    这篇文章主要介绍了C#实现3步手动建DataGridView的方法,实例分析了C#实现手动创建DataGridView的原理与技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • c# 冒泡排序算法(Bubble Sort) 附实例代码

    c# 冒泡排序算法(Bubble Sort) 附实例代码

    这篇文章主要介绍了c# 冒泡排序算法,需要的朋友可以参考下
    2013-10-10
  • C#计时器的三种实现方法

    C#计时器的三种实现方法

    这篇文章主要介绍了C#计时器的三种实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • C#反射调用拓展类方法实例代码

    C#反射调用拓展类方法实例代码

    这篇文章主要给大家介绍了关于C#反射调用拓展类方法的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Unity切割图集转换为多张图片

    Unity切割图集转换为多张图片

    这篇文章主要为大家详细介绍了Unity切割图集转换为多张图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • C# 读写编辑INI文件的操作

    C# 读写编辑INI文件的操作

    INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打开,主要存放的是用户所做的选择或系统的各种参数,这篇文章主要介绍了C#读写编辑INI文件的操作,需要的朋友可以参考下
    2023-05-05
  • SuperSocket入门--Telnet服务器和客户端请求处理

    SuperSocket入门--Telnet服务器和客户端请求处理

    本文的控制台项目是根据SuperSocket官方Telnet示例代码进行调试的,官方示例代码:Telnet示例。下面跟着小编一起来看下吧
    2017-01-01
  • C#实现文件分割和合并的示例详解

    C#实现文件分割和合并的示例详解

    这篇文章主要为大家详细介绍了如何利用C#实现文件分割和合并的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • C#读取多条数据记录导出到Word之图片输出改造

    C#读取多条数据记录导出到Word之图片输出改造

    这篇文章主要为大家详细介绍了C#读取多条数据记录并导出到Word标签模板中的图片输出问题,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-11-11

最新评论