文章目录

  • 前言:
  • 一、属性
    • 1、Name 属性
    • 2、AllowDrop 属性
    • 3、Anchor 属性
    • 4、AutoEllipsis 属性
    • 5、autosize 属性
    • 6、backcolor 属性
    • 7、borderstyle 属性
    • 8、CausesValidation 属性
    • 9、contextMenuStrip 属性
    • 10、Cursor属性
    • 11、Dock 属性
    • 12、enable 属性
    • 13、Font 属性
    • 14、GenerateMember 属性
    • 15、flatstyle 属性
    • 16、Image 属性
    • 17、Modifies 属性
    • 18、ImageAlign 属性
    • 19、ImageIndex 属性
    • 20、ImageList 属性
    • 21、ImageKey 属性
    • 22、Location 属性
    • 23、Locked 属性
    • 24、Margin 属性
    • 25、MaximumSize,MinimumSize,Size 属性
    • 26、Padding 属性
    • 27、RightToLeft 属性
    • 28、TabIndex 属性
    • 29、Tag 属性
    • 30、Text,TextAlign 属性
    • 31、UseCompatibleTextRendering 属性
    • 32、UseMnemonic 属性
    • 33、UseWaitCursor 属性
    • 34、visible 属性
    • 35、DataBindings 属性
  • 二、事件
    • 1、layout 事件
    • 2、MarginChanged 事件
    • 3、Move 事件
    • 4、PaddingChanged 事件
    • 5、click 事件
    • 6、doubleclick 事件
    • 7、resize 事件
    • 8、MouseCaptureChanged 事件
    • 9、MouseClick 事件
    • 10、mousedoubleClick 事件
    • 11、ChangeUICues 事件
    • 12、ControlAdded 事件
    • 13、ControlRemoved 事件
    • 14、HelpRequested 事件
    • 15、StyleChanged 事件
    • 16、AutoSizeChanged 事件
    • 17、BackColorChanged 事件
    • 18、BindingContextChanged 事件
    • 19、CausesValidationChanged
    • 20、ClientSizeChanged 事件
    • 21、ContextMenuStripChanged 事件
    • 22、CursorChanged
    • 23、DockChanged 事件
    • 24、FontChanged 事件
    • 25、ForeColorChanged 事件
    • 26、LocationChanged 事件
    • 27、ParentChanged 事件
    • 28、RegionChanged 事件
    • 29、RightToLeftChanged 事件
    • 30、SizeChanged 事件
    • 31、TabIndex 事件
    • 32、TextAlignChanged 事件
    • 33、TextChanged 事件
    • 34、VisibleChanged 事件
    • 35、MouseDown 事件
    • 36、MouseEnter 事件
    • 37、MouseHover 事件
    • 38、MouseLeave 事件
    • 39、MouseMove 事件
    • 40、DragEnter 事件
    • 41、DragOver 事件
    • 42、DragLeave 事件
    • 43、DragDrop 事件
    • 44、GiveFeedback 事件
    • 45、QueryContinueDrag 事件
    • 46、Paint 事件
    • 47、Enter 事件
    • 48、Leave 事件
    • 49、Validating 事件
    • 50、Validated 事件
  • 三、 其他控件介绍访问链接:
    • 1、[Winform控件开发(1)——Label(史上最全)](https://editor.csdn.net/md/?articleId=104818311)
    • 2、[Winform控件开发(2)——Button(史上最全)](https://blog.csdn.net/qq_34059233/article/details/108869139)
    • 3、[Winform控件开发(3)——Form(史上最全)](https://blog.csdn.net/qq_34059233/article/details/121260620)
    • 4、[Winform控件开发(4)——Textbox(史上最全)](https://blog.csdn.net/qq_34059233/article/details/121507433)
    • 5、[Winform控件开发(5)——checkBox(史上最全)](https://blog.csdn.net/qq_34059233/article/details/121547425)
    • 6、[Winform控件开发(6)——radioButton(史上最全)](https://blog.csdn.net/qq_34059233/article/details/121548208)
    • 7、[Winform控件开发(7)——ComboBox(史上最全)](https://blog.csdn.net/qq_34059233/article/details/121551959)
    • 8、[Winform控件开发(8)——richTextBox(史上最全)](https://blog.csdn.net/qq_34059233/article/details/122362363)
    • 9、[Winform控件开发(9)——ListBox(史上最全)](https://blog.csdn.net/qq_34059233/article/details/122432252)
    • 10、[Winform控件开发(10)——CheckedListBox(史上最全)](https://blog.csdn.net/qq_34059233/article/details/122486646)
    • 11、[Winform控件开发(11)——numericUpDown(史上最全)](https://blog.csdn.net/qq_34059233/article/details/122492955)
    • 12、[Winform控件开发(12)——LinkLabel(史上最全)](https://editor.csdn.net/md/?articleId=122494012)
    • 13、[Winform控件开发(13)——DateTimePicker(史上最全)](https://blog.csdn.net/qq_34059233/article/details/122495893)
    • 14、[Winform控件开发(14)——NotifyIcon(史上最全)](https://blog.csdn.net/qq_34059233/article/details/129101473)
    • 15、[Winform控件开发(15)——contextMenuStrip(史上最全)](https://blog.csdn.net/qq_34059233/article/details/108865197)
    • 16、[Winform控件开发(16)——Timer(史上最全)](https://blog.csdn.net/qq_34059233/article/details/129221656)
    • 17、[Winform控件开发(17)——PictureBox(史上最全)](https://editor.csdn.net/md/?articleId=129225654)
    • 18、[Winform控件开发(18)——Chart(史上最全)](https://editor.csdn.net/md/?articleId=129369477)
    • 19、[Winform控件开发(19)——DataGridView(史上最全)](https://editor.csdn.net/md/?articleId=129369731)

前言:

本篇文章是我开设的博客专栏《winform控件从入门到精通》系列文章中的一篇介绍Lable控件如何使用的文章,本专栏会对winform中所有控件进行介绍,包括控件的属性和事件,重点是我会尽可能的将控件所有属性和事件进行介绍,并且也会在专栏中增加一些案例来帮助想学习winform控件的程序员来巩固以及练习如何灵活的运用控件的各种特性来实现不同的功能,所以该专栏文章既包含了入门内容,也包含了进阶内容,对于想学习winform控件开发的程序员来说这绝对是一份非常详细的资料,您也可以将其作为自己的字典,需要使用某个功能的时候来查阅即可,当然如果您发现我的文章中有您需要的功能,但是我没有进行介绍,您可以在我的博客中留言,我会及时更新该功能,相信在自己的努力下以及众多粉丝、广大程序员们的建议下,本专栏一定会成为全网对winform开发介绍最为详细的文章,感谢大家一直以来的支持!

Label一般用于显示文本或者作为"按钮使用",当作为显示文本使用时,通过设置label的Text属性实现,当作为“按钮使用时”,在label的单击事件下注册事件即可,下面详细介绍label的属性以及事件:

一、属性

1、Name 属性

该属性代表label类对象的名称,通过该属性可以获取到该label对象,如下图:

该label对象名称为label1,当然也可以更改为其他名称

2、AllowDrop 属性

该属性的值是指示控件是否接受用户拖放文件的数据,具体指某个文件的全路径,具体操作过程以及代码如下:

private void label1_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
Console.WriteLine(1);
}
private void label1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
label1.Text = ((string[])e.Data.GetData(DataFormats.FileDrop))[0];
}

3、Anchor 属性

当窗体的大小发生改变时,label是否绑定父容器的边缘(当都不绑定时,label随着窗体大小变化发生无规则的变化),以及具体与父容器哪条边的距离保持不变,下图为topright时的程序运行结果。

4、AutoEllipsis 属性

指示当label中的文字超出label大小时,是否在label的末尾显示省略号…,如下图:

以上设置autoEllipsis为true时,autosize属性一定要设置为false,否则由于label的大小随着文本的增多自动改变大小,autoellipsis属性将会失效。

5、autosize 属性

当改变label的文本内容或者改变字体大小,字体样式时,label本省也跟着改变大小,如下图:

6、backcolor 属性

改变背景颜色,如下图:

7、borderstyle 属性

设置控件边框的样式,由于label的borderstyle的样式不明显,故这里用textbox举例,可以看出borderstyle为none时没有边框,且无立体感,为fixedsingle时有黑色的边框,为fixed3d时,立体感非常强,如下图

8、CausesValidation 属性

该值设置为true时,当控件失去焦点时(控件焦点的执行顺序是Enter、GotFocus、Leave、Validating、Validated、LoseFocus),需要对控件进行验证(这里要注意不能在主窗体构造函数以及在Load事件中使控件获取焦点focus方法或者判断控件是否可以获取焦点CanFocus属性,这样的操作是无效的,关于何时可以对控件的焦点进行操作,请看这篇文章窗体加载时构造函数、load事件等执行顺序),经过测试原文中OnGotFocus无法执行,焦点操作在OnActivated方法开始以及之后都可以,如果不想重写这些方法并且要实现在初始化时对控件焦点进行控制,有两种方法参考,第一种是在form的Activated事件中控制控件的焦点,也可以另外开线程对控件焦点进行操作,线程控件验证代码和操作过程如下图):
private void label1_Validating(object sender, CancelEventArgs e)
{
if (((Label)sender).Text == string.Empty)
{
Console.WriteLine(“不能为空”);
e.Cancel = true;
}
}
private void Form1_Load(object sender, EventArgs e)
{
Thread thread1 = new Thread(UpdateUi);
thread1.IsBackground = true;
thread1.Start();

    }private void UpdateUi(){this.Invoke(new Action (()=>label1 .Focus ())); }

以上代码在CausesValidation的值为true时,控件焦点离开时执行,初始化程序时,让label1获取焦点;

gif图片可以看出,如果在validating事件中,e.cancel=true时,焦点的位置会保持不动,除非e.cancel=false,焦点才能顺利的发生变化。

9、contextMenuStrip 属性

右键菜单,用于将菜单和某个控件绑定,当右键单击控件时,弹出菜单,我们可以在菜单中编辑业务代码,如下:
如果需要改变菜单弹出的位置,则可以在控件的MouseUp事件中show出菜单,代码如下:
private void label1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
//this.label1.ContextMenuStrip.Show(this, new Point(label1.Location.X, label1.Location.Y));
this.label1.ContextMenuStrip.Show(this.label1, new Point(label1.Location.X, label1.Location.Y));
}
}
show方法中的第一个参数是菜单距离指定控件一定位置时显示,第二个参数是菜单显示时和指定控件相距的X,Y位置。

10、Cursor属性

该属性指示当窗体程序运行后,鼠标经过控件时,鼠标光标的形状,如下图:

11、Dock 属性

控件在父容器中停靠的位置,分为top,bottom,left,right,fill,none六种情况,并且label的autosize属性为true时以及为false时,控件的停靠情况不一致,分别如下图:
autosize为true时:

以上可以看出,当autosize为true时,left、top、fill均为左上角停靠,right为右上角,bottom为左下角
autosize为false时:

以上可以看出,当autosize为false时,left、right,、top、bottom分别在左、右、顶、底停靠,fill时,控件填充满整个父容器。

12、enable 属性

从字面意思enable为true时,该控件可以使用,我所知道的功能是enable为false时,可编辑控件不能编辑,以textbox为例,如下图:

13、Font 属性

forecolor,字体以及前景色属性,字体包括改变字体的大小(10,12)、字体的样式(宋体,楷体)、字形(粗体,斜体),前景色指字体的颜色。

14、GenerateMember 属性

该属性决定让控件变量作为类的成员变量出现,还是作为InitializeComponent方法中的局部变量。即如果属性设为true,则你能在类的其他地方引用这个控件,否则,它将成为InitializeComponent方法的一个局部变量,你将在其他的方法中无法对这个控件进行直接引用控制,并且注意以下三点:
1)GenerateMember属性和Modifiers一同使用;
2)Modifiers仅当GenerateMember属性设置为True时有效,其用来设置成员变量的访问级别;
3)GenerateMember属性设置为False时,Modifiers属性设置无效,Modifiers默认为Private

15、flatstyle 属性

该属性指定控件的外观,msdn说明了四种情况
1)Flat 该控件以平面显示。
2)Popup 该控件以平面显示,直到鼠标指针移动到该控件为止,此时该控件外观为三维。
3)Standard 该控件外观为三维。
4)System 该控件的外观是由用户的操作系统决定的。
由于lable的效果不明显,这里以button为例,如下图:

16、Image 属性

该属性用于为控件设置背景图片,且导入图片有以下几种方式:
1)导入本地资源;
2)导入项目资源;
3)以读取本地文件的方式为imge属性赋值;
以上三种方式中,导入资源文件时,当我们打开资源文件时,程序不会报错,但打开本地用代码读取的文件时会报文件被占用的错误,而导入本地资源时,只能用于指定的控件,如果想要给其他控件使用还需要导入一次,比较麻烦,但使用导入项目资源的方式时(资源文件可以手动在Image属性下导入项目资源文件,这时会自动创建一个resources文件夹,或者也可以双击properties属性下的resources.resx,然后添加资源文件,效果是相同的,也会自动创建一个resources文件夹),,此时资源文件已经被写入Properities属性下的Resources.resc文件中,实际使用中,可以首先将所有的资源放到resources文件夹下,然后在resources.resx中添加资源文件,这个资源文件时公用的,各个控件可以通过代码灵活调用,代码和图片如下:
label1.Image = WindowsFormsApplication2.Properties.Resources.捕获;

17、Modifies 属性

该属性用于设置控件的访问级别,并且当且仅当GenerateMember为true时有效,代码如下:
protected System.Windows.Forms.Label label1;
上述代码说明label的访问级别为protected和modifies的值相同。

18、ImageAlign 属性

图像在控件中的对齐方式,当选择TopLeft时,当Image控件的大小改变时,图像的TopLeft部分始终优先显示在控件中,其余属性相同,即选择哪个部分,则哪个部分优先显示,如下图:

19、ImageIndex 属性

该属性用于指示图像在Imgagelist中的索引,当控件不包含ImageList时,即控件只有Image属性,则ImageIndex为-1,当控件包含Imagelist,并且imageList不为空时,则可以通过设置ImageIndex的值来选择哪个Image,index的起始值是0,这里要注意Image和ImageList是互相对立的,Image不为Null,ImageList一定为Null,反之亦然,参考代码如下:

 ImageList image1List = new ImageList();Image img1 = Properties.Resources.捕获;Image img2 = Properties.Resources.下载;image1List.Images.Add(img1);image1List.Images.Add(img2);image1List.ImageSize = new Size(100,100);label1.ImageList  = image1List;label1.ImageIndex = 1;

20、ImageList 属性

指的是一个Image的集合,用于存储多个Imgae;

21、ImageKey 属性

该属性指的是ImageList中图像的文件名(包含文件类型后缀),可让控件绑定ImageList,并且通过设置ImageKey的值来决定label绑定的图像

22、Location 属性

该属性指的是控件左上角和其所属父控件左上角的相对位置,一共有X和Y两个评价位置的维度。

23、Locked 属性

该属性用于界面设计阶段时,对控件进行锁定,当程序运行后,控件的大小又可以重新改变,如下图:

24、Margin 属性

主要用于设置控件与控件之间的距离,在tablelayoutpanel、flowlayoutpanel中放置控件,则通过设置控件的Margin属性,则可以控制控件与父容器ablelayoutpanel或flowlayoutpanel之间的距离,其余的应用场景暂时不清楚;
1)flowLayoutPanel1

在flowLayoutPanel1中可控制label距离flowLayoutPanel1左边缘和上边缘的距离,这里的Margin都是设置50,50,50,50

2)tableLayoutPanel1

在tableLayoutPanel1中可控制label距离tableLayoutPanel1上下左右的距离,这里的Margin都是设置50,50,50,50

25、MaximumSize,MinimumSize,Size 属性

该属性用于设置控件的大小,单位是pixel,且Size属性起作用时,autosize要设置为flase,MaximumSize、MinimumSize用于控制Size的最大,最小设置范围,当将MaximumSize的width和height属性设置为0,0时,该属性对Size失去限制作用,并且autosize的属性是否为true,MaximumSize、MinimumSize都生效;

26、Padding 属性

该属性用于设置控件边缘和控件内文本的距离。
下图是Padding的All设置0和15的情况,可以看出设置成15时,控件内容和控件边缘的距离变大到15个像素。

27、RightToLeft 属性

该属性指示控件中的元素,主要指多行文本的对齐方式,有以下三种情况:
1)RightToLeft.No:表示文本左对齐,默认此选项;
2)RightToLeft.Yes:表示文本右对齐;
3)RightToLeft.Inherit:表示文本的读取方向由其父控件决定;

28、TabIndex 属性

字面意思Tab键的索引,当窗体加载时,默认tabindex等于0的控件首先被聚焦,当我们不想使用鼠标控制焦点在哪个控件上时,我们可以通过设置控件的Tabindex值,然后运行程序后,通过Tab键来控制焦点的位置,并且焦点是从0、1、2、这种递增的顺序移动的,并且Label虽然可以设置TabIndex属性,但是当我们使用Tab键时,焦点并不能移动到Label上,这说明不是所有的控件都能响应Tab键。

29、Tag 属性

设置或者获取包含控件数据的对象,也就是说可以通过Tag属性,给控件额外的增加数据,避免重新声明一些变量,案例代码如下:
label1.Tag = new Class1(13);
Class1 value = (Class1)(label1.Tag);
Console.WriteLine(value);
以上代码中,给label1的tag属性绑定一个class1的对象,然后再次获取其值;

30、Text,TextAlign 属性

Text属性是为控件的文本赋值,TextAlign是设定文本在控件中的位置,top,topleft等,该属性起作用时,Autosize的值为false;

31、UseCompatibleTextRendering 属性

该属性的msdn解释如下:
UseCompatibleTextRendering 属性旨在提供 Windows 窗体控件之间的视觉兼容性,这些控件使用 TextRenderer 类呈现文本,并使用 .NET Framework 1.1 类 .NET Framework 1.0 和 Graphics 执行自定义文本呈现的应用程序。 在大多数情况下,如果你的应用程序不是从 .NET Framework 1.0 或 .NET Framework 1.1升级,则建议你将 UseCompatibleTextRendering 设置为默认值 “false”。
.NET Framework 2.0 中引入了基于 GDI 的 TextRenderer 类以提高性能,使文本更好地显示,并改善对国际字体的支持。 在 .NET Framework的早期版本中,将使用基于 GDI+ 的 Graphics 类来执行所有文本呈现。 GDI 计算不同于 GDI+的字符间距和自动换行。 在使用 Graphics 类呈现文本的 Windows 窗体应用程序中,这可能会导致使用 TextRenderer 的控件的文本与应用程序中的其他文本显示不相同。 若要解决这种不兼容性问题,可将 UseCompatibleTextRendering 属性设置为特定控件 true。 若要将 UseCompatibleTextRendering 设置为应用程序中所有支持的控件 true,请使用 true的参数调用 Application.SetCompatibleTextRenderingDefault 方法。
总结起来就是,现在的程序都用false,因为不是从1.0,1.1升级过来的。

32、UseMnemonic 属性

msdn的解释如下:
如果标签不显示“&”符,而且为其显示文本中“&”符之后的一个字符加上下划线并将带下划线的字符看作访问键,值为 true;反之,如果“&”符显示在控件的文本中,值为 false。 默认值为 true。
总结起来就是,想显示&,则该属性设置为false,不想显示则设置为true,并且&后面的字符就是触发该控件单击事件的快捷键,因为label的单击事件用的比较少,所以详细用法我在button的用法这篇文章做了详细介绍,button中快键键的设置

33、UseWaitCursor 属性

该值指示是否将等待光标用于当前控件以及所有子控件,当该值为true时,当前控件的光标变为等待光标,不论之前他的cursor的值设置为什么,这里要注意,如果只是单纯的想设置一个控件的光标为等待光标,那么也可以设置Cursor的属性为等待光标,等待光标就是一个圈,一直在那里转,就像卡住了一样。

34、visible 属性

该属性指示是否显示该控件及其子控件;

35、DataBindings 属性

为该控件绑定数据,

 public class Person{private string _lastName;public string LastName{get { return _lastName; }set { _lastName = value; }}private string _firstName;public string FirstName{get { return _firstName; }set { _firstName = value; }}private int _age;public int Age{get { return _age; }set { _age = value; }}public Person() { }public Person(string lastName, string firstName, int age){this.LastName = lastName;this.FirstName = firstName;this.Age = age;}}

Person是一个类,

 public Form1(){InitializeComponent();List<Person> list = new List<Person>();list.Add(new Person("LastName1", "FirstName1", 30));list.Add(new Person("LastName2", "FirstName2", 31));list.Add(new Person("LastName3", "FirstName3", 32));list.Add(new Person("LastName4", "FirstName4", 33));//数据绑定binding = new Binding("Text", list, "LastName");//实例化绑定this.label3.DataBindings.Add(binding);//将数据源的LastName属性和label3的Text属性绑定cm = (CurrencyManager)label3.BindingContext[list];//获取管理对象的列表}

以上程序的意思是,首先实例化一个绑定,这个绑定的规则是将Lable3的Text属性和list的LastName属性绑定,然后获取一个管理绑定的数据源集合的管理对象,然后通过改变管理对象的Postion属性就能实现改变Lable3的Text属性,让该属性跟着列表中的数据的索引变化而变化。

二、事件

1、layout 事件

当把lable控件的autosize属性设置成false时,然后改变label的大小时,就能触发layout布局事件,当改变大小时,resize事件也能触发;

2、MarginChanged 事件

当控件的边缘和tablelayoutpanel或者flowlayoutpanel的距离发生改变时,也就睡Margin属性的值发生改变时触发该事件;

3、Move 事件

当label的postion属性值发生变化时,会触发Move事件;

4、PaddingChanged 事件

当Padding属性发生改变时,会触发该事件;

5、click 事件

鼠标单击控件时触发,不能区分出是鼠标的左键、中键还是右键触发;

6、doubleclick 事件

鼠标双击触发,包含左键、中键、右键,不能区分出是鼠标的左键、中键、右键触发,这里要注意的是,双击鼠标时,单击事件也会被触发,如果想实现双击时不触发单击事件,则可以在接收到单击事件时,往后计算一个时间段,比如100ms,如果100ms内,没有触发双击事件,则认为这就是一次单击事件,如果触发了双击事件,则取消单击事件的处理;

7、resize 事件

当改变了控件的size属性时发生;

8、MouseCaptureChanged 事件

控件失去鼠标捕获时发生,所以当鼠标按下控件,然后再次松开先出发了mouse up事件,然后就触发了MouseCaptureChanged事件;另一种情况是,按下鼠标,然后鼠标不松开,然后直接按下tab键去改变被按下控件的焦点,让其失去焦点,这时会触发MouseCaptureChanged事件;

9、MouseClick 事件

和click的功能是一样,但是它的功能更全,就是该事件的e参数包含的数据有很多,比如鼠标是左键按下还是右键,鼠标位置等参数,所以如果需要精确的鼠标的信息,那么我们应该使用Mouseclick事件,如果不需要那么就使用click事件;

10、mousedoubleClick 事件

比doubleclick多了很多的鼠标信息。

11、ChangeUICues 事件

msdn的解释是:当控件的聚焦框显示或者隐藏时发生,暂且尚不清楚在哪些场景下能用到;

12、ControlAdded 事件

当往label控件中添加别的控件时,比如执行 label1.Controls.Add(button1);会触发该事件;

13、ControlRemoved 事件

当往label控件中移除控件时, 比如执行 label1.Controls.Remove (button1)、 根据对象删除label1.Controls.RemoveByKey(“button2”)、根据对象的Name的字符串删除
label1.Controls.RemoveAt(0); 根据索引删除
根据以上三种方法删除控件集合中的控件时触发该事件;

14、HelpRequested 事件

当焦点在控件上,并且按下F1帮助键时,会触发该事件;

15、StyleChanged 事件

16、AutoSizeChanged 事件

AutoSize当属性更改时触发该事件;

17、BackColorChanged 事件

BackColor的属性值更改时发生

18、BindingContextChanged 事件

当调用DataBindings属性的Add方法为控件绑定数据时会触发该事件
this.label3.DataBindings.Add(binding);

19、CausesValidationChanged

CausesValidation属性值更改时触发该事件

20、ClientSizeChanged 事件

当autosize属性设置成true时,只有改变text文本才能触发ClientSizeChanged事件,强制改变ClientSize属性也没用;当autosize属性设置成false时,强制改变ClientSize属性,也能触发ClientSizeChanged事件。

21、ContextMenuStripChanged 事件

当给控件的ContextMenuStrip属性赋值时触发ContextMenuStripChanged事件。
label3.ContextMenuStrip = contextMenuStrip1;

22、CursorChanged

改变Cursor属性时会触发CursorChanged事件。

23、DockChanged 事件

Dock属性改变时触发该事件。

24、FontChanged 事件

字体改变时触发该事件

25、ForeColorChanged 事件

字体颜色更改时触发

26、LocationChanged 事件

位置更改时触发

27、ParentChanged 事件

更改Label的父容器时触发,默认父容器是form,因为Label是直接放到form上的。

28、RegionChanged 事件

更改Region属性时触发,默认Label的Region属性值为null,当我们设置Region属性时,Label的大小会发生变化,并且在这之前Label的autosize属性已经被设置为false,首先假定Label的大小为100100,如下:

当单击button1时,改变Label1的Region属性,该属性为50
50,0,0是相对于Label1的左上角定义的,
我们会发现改变Region属性后,Label的大小变为如下:
Region region = new Region(new Rectangle(0, 0, 50, 50));
label1.Region = region;


但是Label1的大小并没有发生变化,还是100*100,但是另外消失的部分无法再响应鼠标的任何事件了(也称为不击中),并且这里的Region,和我们在自定义控件时填充的Region含义不同,那个填充图形时使用的Region仅仅是代表我们要填充颜色的Region。

29、RightToLeftChanged 事件

指示文字是否靠右显示;

30、SizeChanged 事件

Label的Size属性,即改变大小时触发

31、TabIndex 事件

TabIndex属性改变时触发

32、TextAlignChanged 事件

文本在控件中的位置发生改变时触发;

33、TextChanged 事件

更改label的文本时发生;

34、VisibleChanged 事件

更改Visible属性时发生。

35、MouseDown 事件

鼠标按下时发生,鼠标经过控件的Region区域时发生,而不是size所在区域时发生,当没有设置Region属性时,就是经过Size所在的区域时触发

36、MouseEnter 事件

鼠标进入控件可见区域时触发,如果鼠标进入控件后,只在鼠标内部移动,那么该事件只触发一次。

37、MouseHover 事件

鼠标保持在控件region内一段时间才触发,比如你鼠标快速在控件上方划过,并不会触发该事件,强调的是鼠标静止一段时间,但是会触发MouseEnter事件。

38、MouseLeave 事件

鼠标离开控件的可见区域时触发;

39、MouseMove 事件

鼠标在控件可见区域内移动时就触发。

40、DragEnter 事件

将某项拖到控件的工作区时触发,只触发一次,和这个功能相似的有DragOver,DragOver是将对象拖过控件的边界时发生,所以只要鼠标把东西拖到控件工作区时,就算鼠标悬停不动,dragover事件也是不停的触发,和dragenter触发一次还是有区别的;

41、DragOver 事件

将对象拖过控件的边界时发生,所以只要鼠标把东西拖到控件工作区时,就算鼠标悬停不动,dragover事件也是不停的触发,所以如果是需要不停的触发那就使用dragover事件

42、DragLeave 事件

将对象脱出控件的边界时发生,只触发一次;

43、DragDrop 事件

拖放操作完成时发生,也就是拖完以后松开了鼠标左键后发生。
典型的一个拖放操作应该是在dragenter中指定拖放操作的可能效果,该效果默认是没有的,也就是 e.Effect 的值是 DragDropEffects.None,此时即使进行了拖放操作,但是由于没有指定拖放效果,所以DragDrop事件不会触发,所以如果想实现拖放操作中的复制、移动等操作,必须要在DragEnter中将e.Effect 的值设置成指定的拖放效果,这样拖放完成后,才能触发DragDrop事件。例如:

  private void label1_DragDrop(object sender, DragEventArgs e){if (e.Data.GetDataPresent(DataFormats.FileDrop)){label1.Text = ((string[])e.Data.GetData(DataFormats.FileDrop))[0];}}private void label1_DragEnter(object sender, DragEventArgs e){DragDropEffects dragDropEffects = e.Effect;e.Effect = DragDropEffects.Copy ;}

上面的代码就是将文件的文件全路径复制给Label控件的Text属性。

44、GiveFeedback 事件

在发起拖放时触发

45、QueryContinueDrag 事件

在发起拖放时触发

46、Paint 事件

对单个的控件进行重绘
private void label1_Paint_1(object sender, PaintEventArgs e)
{
Graphics g= e.Graphics;
g.FillEllipse(Brushes.Red, new Rectangle(0,0,50,50)); ;
}

如下所示在控件上画出了一个圆

47、Enter 事件

焦点跑到Label时触发;

48、Leave 事件

焦点离开label时触发

49、Validating 事件

50、Validated 事件

当使用tab键、shift+tab键等控制焦点时,焦点触发的顺序是:

当使用鼠标控制焦点或者通过focus方法控制焦点时,焦点触发顺序如下:

三、 其他控件介绍访问链接:

如果您想学习更多的winform控件的话,请关注我的博客专栏《winform控件从入门到精通》,更多控件的访问链接如下:
点击链接即可转到该控件的详细介绍:

1、Winform控件开发(1)——Label(史上最全)

2、Winform控件开发(2)——Button(史上最全)

3、Winform控件开发(3)——Form(史上最全)

4、Winform控件开发(4)——Textbox(史上最全)

5、Winform控件开发(5)——checkBox(史上最全)

6、Winform控件开发(6)——radioButton(史上最全)

7、Winform控件开发(7)——ComboBox(史上最全)

8、Winform控件开发(8)——richTextBox(史上最全)

9、Winform控件开发(9)——ListBox(史上最全)

10、Winform控件开发(10)——CheckedListBox(史上最全)

11、Winform控件开发(11)——numericUpDown(史上最全)

12、Winform控件开发(12)——LinkLabel(史上最全)

13、Winform控件开发(13)——DateTimePicker(史上最全)

14、Winform控件开发(14)——NotifyIcon(史上最全)

15、Winform控件开发(15)——contextMenuStrip(史上最全)

16、Winform控件开发(16)——Timer(史上最全)

17、Winform控件开发(17)——PictureBox(史上最全)

18、Winform控件开发(18)——Chart(史上最全)

19、Winform控件开发(19)——DataGridView(史上最全)

Winform控件开发(1)——Label(史上最全)相关推荐

  1. IM开发宝典:史上最全,微信各种功能参数和逻辑规则资料汇总

    1.引言 IM应用的初学者们,在补全了各种基础技术知识后(如果您仍不具备这些知识,建议马上阅读<新手入门一篇就够:从零开发移动端IM>),在动手编码实践时,很多时候纠结的并不是功能该如何实 ...

  2. WINFORM控件开发 来源:博客园 作者:纶巾客

    (1)开篇 我本人不是专业的控件开发人员,只是在平常的工作中,需要自己开发一些控件.在自己开发WinForm控件的时候,没有太多可以借鉴的资料,只能盯着MSDN使劲看,还好总算有些收获.现在我会把这些 ...

  3. 刚学GDI+和.Net WinForm控件开发时做的Training Project

    我在上海的第一份工作是在群硕做.Net控件开发.现在看来当时写的代码里有很多不成熟的地方,不过当年我是在写出一些代码之后对面向对象开发有了真正开窍的感觉的.所以这段代码对我来说意义还是蛮大滴.在这里贴 ...

  4. Winform控件开发(11)——numericUpDown(史上最全)

    一.属性 1.InterceptArrowKeys 指示用户是否可以使用键盘的向上或者向下键来选择值,但是控件上面的向上和向下键依然可以控制控件的值增大还是减小 2.DecimalPlaces 获取或 ...

  5. Winform控件开发(9)——ListBox(史上最全)

    一.属性 // Create an instance of the ListBox.ListBox listBox1 = new ListBox();// Set the size and locat ...

  6. Winform控件开发(15)——contextMenuStrip(史上最全)

    以上菜单栏contextMenuStrip中含有四个子空间对象,分别如下: 1.ToolStripMenuItem ToolStripMenuItem对应上图的"文件"所在的菜单项 ...

  7. WinForm控件开发总结(五)-----为控件的复杂属性提供类型转换器

     上一篇文章我已经介绍了TypeConverterAttribute元数据的作用,本文将通过代码向你展示具体的实现.在这个例子中,我要给控件添加一个复杂的属性,这个属性对这个控件没有什么功用,纯粹是为 ...

  8. 多点滑块滑杆控件----------WinForm控件开发系列

    /// <summary>/// 多点滑块进度控件/// </summary>[ToolboxItem(true)][DefaultProperty("Items&q ...

  9. Winform控件开发(14)——NotifyIcon(史上最全)

    前言: 先看个气泡提示框的效果: 代码如下: 在一个button中注册click事件,当我们点击button1时,就能显示气泡 private void button1_Click(object se ...

最新文章

  1. s5 android5.0内存泄漏,android-最初从位图泄漏了未引用的byte [],但被回收的()导致内存泄漏(直到活动停止)...
  2. PC Lint 初学
  3. php随机图片github,PHP随机图片代码
  4. Apache Hadoop版本详解
  5. 阿里开源新一代人机对话模型 ESIM:准确率打破世界纪录,提升至 94.1%!
  6. 用.NET写“算命”程序
  7. Datawhale-零基础入门NLP-新闻文本分类Task03
  8. 代码审计中的文件包含漏洞
  9. 【计算机领域均可投稿,确保EI检索】移动通信·信息科学热门会议即将到来!更有限时优惠等你来领!...
  10. 从单体架构迁移到微服务,8个关键的思考、实践和经验
  11. python最适合做什么-python学完之后比较适合哪些职业工作呢?
  12. 栅栏密码怎么写java程序_[CTF]栅栏密码学习
  13. 小学智能测试软件,小学智能点读宝
  14. VUE图片裁剪,打码,旋转功能
  15. 中兴Nubia Z5S mini一键ROOT教程 获取ROOT权限
  16. Jetson Nano 关闭开启图形界面减少内存占用
  17. WORD如何取消默认的分栏
  18. 华为Mate50发布,4999元起,全球首款支持北斗卫星消息的智能手机
  19. 怎么做成html网页,html网页制作的基本步骤?怎么用html做一个网页?
  20. 【51毕业设计案例】【007】WIFI智能定时加湿器-基于51单片机

热门文章

  1. ie浏览器缓存不能更新页面数据
  2. 暗影精灵6加装M.2固态硬盘详细教程
  3. 浪潮服务器性能测试,内存、IO子系统性能测试_浪潮服务器_服务器评测与技术-中关村在线...
  4. ROS安装罗技C170摄像头
  5. 猜成语游戏c语言程序设计教程课后答案,猜成语的灯谜和答案
  6. TCP 滑动窗口的简介
  7. 真实dom转换为虚拟dom的简单实现
  8. 全光网+Wi-Fi 6,北方民族大学将全光智慧校园照进现实
  9. 正方形和三角形面积C语言,探讨正方形中的三角形动态面积
  10. Linux进程调度切换和虚拟空间管理深入分析