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# WPF 自定义按钮的方法

    C# WPF 自定义按钮的方法

    这篇文章主要介绍了C# WPF 自定义按钮的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#中string和StingBuilder内存中的区别实例分析

    C#中string和StingBuilder内存中的区别实例分析

    这篇文章主要介绍了C#中string和StingBuilder内存中的区别,以实例形式演示了二者在内存中的不同之处,需要的朋友可以参考下
    2014-09-09
  • C#将布尔类型转换成字节数组的方法

    C#将布尔类型转换成字节数组的方法

    这篇文章主要介绍了C#将布尔类型转换成字节数组的方法,涉及C#中字符串函数的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 利用Aspose.Word控件实现Word文档的操作

    利用Aspose.Word控件实现Word文档的操作

    偶然一次机会,一个项目的报表功能指定需要导出为Word文档,因此寻找了很多篇文章,不过多数介绍的比较简单一点,于是也参考了官方的帮助介绍,终于满足了客户的需求。下面我由浅入深来介绍这个控件在实际业务中的使用过程吧
    2013-05-05
  • C#中WebBrowser.DocumentCompleted事件多次调用问题解决方法

    C#中WebBrowser.DocumentCompleted事件多次调用问题解决方法

    这篇文章主要介绍了C#中WebBrowser.DocumentCompleted事件多次调用问题解决方法,本文讲解了3种情况和各自情况的解决方法,需要的朋友可以参考下
    2015-01-01
  • C# 灵活使用类的方法

    C# 灵活使用类的方法

    本文主要介绍了C# 灵活使用类的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C# 获取系统字体的示例代码

    C# 获取系统字体的示例代码

    这篇文章主要介绍了C# 获取系统字体的方法,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Qt程序中调用C#编写的dll(推荐)

    Qt程序中调用C#编写的dll(推荐)

    这篇文章主要介绍了Qt程序中调用C#编写的dll,本文图文并茂给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • C#切换鼠标左右键习惯无需控制面板中修改

    C#切换鼠标左右键习惯无需控制面板中修改

    本人一直喜欢左手使用鼠标,偶尔同事会临时操作一下,因为他的习惯是右手,还得在控制面板里进行更改,太麻烦了所以就编写一个控制台程序,双击一下即可切换左右键,热爱懒人的你可不要错过了哈
    2013-02-02
  • 在winform下实现左右布局多窗口界面的方法

    在winform下实现左右布局多窗口界面的方法

    在web页面上我们可以通过frameset,iframe嵌套框架很容易实现各种导航+内容的布局界面,而在winform、WPF中实现其实也很容易,通过本文给大家介绍在winform下实现左右布局多窗口界面的方法,本文介绍的非常详细,对winform布局相关知识感兴趣的朋友一起学习吧
    2016-02-02

最新评论