前言
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属性
该属性指示当窗体程序运行后,鼠标经过控件时,鼠标光标的形状,如下图:
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!
作者:JackWang-CUMT
出处:cnblogs.com/isaboy/p/winform_step_control.html
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!