设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间23 现在时间23 缓存数据 安全感不是来源于爱,而是偏爱。人只有确定自己是那个例外,才能安心。晚安,好梦。

安全感不是来源于爱,而是偏爱。人只有确定自己是那个例外,才能安心。晚安,好梦。

查看: 203|回复: 1

C#控件编程之显示信息控件详解(Label、LinkLabel)

[复制链接]

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
41
主题
37
精华
0
金钱
125
积分
78
注册时间
2023-9-29
最后登录
2025-6-1

发表于 2025-6-1 05:37:48 | 显示全部楼层 |阅读模式
Windows窗体设计程序提供众多控件,其中,工具箱窗口的公共控件栏里包含较为常见的控件。
根据功能分类,其中用于显示信息的控件包括标签(Label)和超链接标签(LinkLabel)。
Label用于显示不可编辑的信息,LinkLabel除显示不可编辑信息外,还提供执行文件、网址和电子邮件链接功能,两者使用非常广泛。
本文利用Visual Studio 2019的Windows窗体设计程序,基于C#编程语言,从控件常用属性和事件,结合具体示例,分别介绍Label和LinkLabel。

Label控件

Label控件用于显示不可编辑信息,支持设置显示内容、字体大小、字体颜色和背景色等功能,具体实现由其属性决定。由于Label控件不支持一些额外的互动,没有特殊的事件,对于其事件将不再赘述。


属性


布局


    1. AntoSize
    复制代码
    :bool类型,指示是否启用根据标签内容字号自动调整大小,初始为true。
当AntoSize属性为true时,不能设置其尺寸(Size),Size属性根据标签内容(Text)的长度和字体字号(Font)自动给出。若要自定义Size,需要将AntoSize属性置为false。
经测试,当AntoSize属性为false时,对于水平显示的文本内容,宽度(Width)不够而高度够(Height),文本内容会自动换行;Width和Height都不够,文本内容将显示不全。因此,在编程时发现标签内容显示不全时,考虑Size是否设置足够大。
1.png


    1. Location
    复制代码
    :Point类型,定义控件左上角相对于其容器左上角的像素坐标,初始为所放置的点的像素坐标。
    1. Size
    复制代码
    :Size类型,定义控件的像素尺寸,初始为宽41,高12,即文本“Label1”在小五宋体所占的尺寸大小。

设计


  • Name:string类型,定义代码中用于标识控件的成员变量名,初始为Label1。
Name属性需要在GenerateMember属性为true才生效,若GenerateMember属性为false,将不会为控件生成成员变量,此时在代码中输入Name会报错。
2.png


    1. GenerateMember
    复制代码
    :bool类型,指示是否为控件生成成员变量,初始为true,上述已经提到。
    1. Locked
    复制代码
    :bool类型,指示是否可以通过鼠标移动控件(Location)或者调整控件尺寸(Size),初始为false。
当Locked属性为true时,在设计界面选中该控件会在左上角显示一把锁,提示不能通过鼠标移动控件和调整尺寸,但可以通过输入Location坐标或者Size尺寸数值来操作它。
3.png

4.png


    1. Modifiers
    复制代码
    :枚举类型,定义控件的可访问性级别,枚举值有Private(同类可访问)、Public(公开访问)、Protected(同类及派生类可访问)、Internal(同程序集可访问)、Protected Internal(同程序集及派生程序集可访问),初始为Private。(注:要想在其他类里访问该控件,需要修改这个属性,这个属性无法写代码修改
当需要在其他类里访问该控件时,应设置Modifiers为合适的属性,用Public最方便,访问无限制,若保持Modifiers为Private,在其他类访问该控件时会报错。

外观


    1. BackColor
    复制代码
    :Color类型,定义控件的背景色,初始为SystemColors.Control(系统灰)。
    1. BorderStyle
    复制代码
    :BorderStyle枚举类型,定义标签的边框,枚举值有None(无边框)、FixedSingle(固定单线边框)、Fixed3D(固定3D边框),初始为None。
5.png


    1. BackgroundImage
    复制代码
    :Image类型,定义控件的背景图像,初始为空,即透明背景。
    1. BackgroundImageLayout
    复制代码
    :ImageLayout枚举类型,定义控件背景图像布局方式,枚举值有None(靠左显示)、Tile(重复显示)、Center(居中显示)、Stretch(拉伸占满显示)、Zoom(按比例缩放显示),初始为Tile。
    1. Cursor
    复制代码
    :Cursor枚举类型,定义鼠标移动到控件上显示的光标,初始为Default。
在Cursor属性的下拉框展示了各种枚举值所对应光标种类供开发者选择。
6.png


    1. Font
    复制代码
    :Font类型,定义控件文本的字体和字号等,初始为宋体,9pt(小五)。
Font属性提供了一个供开发者选择的交互界面,包括多种不同字体选择、四种字形选择、多种不同字号选择、删除线和下划线选择等,类似于Word设置字体的交互界面。
7.png


    1. ForeColor
    复制代码
    :Color类型,定义控件文本的颜色,初始为系统颜色SystemColors.ControlText(文本黑)。
    1. Image
    复制代码
    :Image类型,定义控件上显示的图像,初始为空。
Label虽是标签控件,但也提供了图像显示功能,有时是可以客串PictureBox控件使用的。
8.jpeg


    1. ImageAlign
    复制代码
    :ContentAlignment枚举型,定义控件显示图像的对齐方式,初始为MiddleCenter(水平、竖直居中)。
ImageAlign提供左上、左中、左下、中上、中中、中下、右上、右中、右下九种不同位置,在其下拉框可以形象的直接选择。
9.png


    1. Text
    复制代码
    :string类型,定义控件显示的文本,初始为“label1”。
    1. TextAlign
    复制代码
    :ContentAlignment枚举型,定义控件显示文本的对齐方式,初始为MiddleCenter(水平、竖直居中),其下拉条交互方式与ImageAlign属性相同,见上图。

行为


    1. AutoEllipsis
    复制代码
    :bool类型,指示是否自动处理溢出宽度以外的文本,初始为false。
所谓自动处理,实际上就是对溢出文本以省略号显示。
10.png


    1. ContextMenuStrip
    复制代码
    :定义用户右击控件时显示的快捷菜单,初始为空。(注:若要创建此菜单,需要写代码创建或先拖入ContextMenuStrip控件后再到此处选择,详见我的另一篇)C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的用法
    1. Enabled
    复制代码
    :bool型,指示是否启用该控件,初始为true。
标签控件的Enabled属性为false时,将默认显示灰色文本。
11.png


    1. Visible
    复制代码
    :bool类型,指示是否显示该控件,初始为true,为false则隐藏控件。

LinkLabel控件

同样是显示信息控件,LinkLabel控件额外提供了外部链接交互功能,用于实现超链接。超链接的具体实现依靠LinkClicked事件,在事件方法体里写入要转到的链接地址即可。LinkLabel控件和Label类似,两者相同的属性在此不再赘述,本节主要介绍LinkLabel控件特有的属性和事件。
属性


    1. ActiveLinkColor
    复制代码
    :Color类型,定义单击超链接控件且未释放鼠标时,超链接显示的颜色,初始为Red(红色)。
    1. DisabledLinkColor
    复制代码
    :Color类型,定义当超链接被禁用时的颜色,初始为RGB(133,133,133)(灰色)。
注意,这个属性是超链接被禁用时触发,而不是超链接控件被禁用时触发。如果在属性框把控件的Enabled属性置为false,将直接显示默认灰色,跟此属性无关。要使这个属性起作用,需要使用以下代码,其中0可以换成其他索引index。
  1. linkLabel1.Links[0].Enabled = false;//linkLabel1控件的第一条超链接置为不可用
复制代码
12.png


    1. LinkColor
    复制代码
    :Color类型,定义超链接默认显示的颜色,初始为Blue(蓝色)。
    1. LinkVisited
    复制代码
    :bool类型,指示超链接是否按已访问的样式呈现 ,初始为false。
    1. VisitedLinkColor
    复制代码
    :Color类型,定义当LinkVisited属性为true时,超链接显示的颜色,初始为RGB(128,0,128)(看着像是一种紫色)
    1. LinkArea
    复制代码
    :LinkArea类型,定义超链接控件文本中视为超链接的文本范围,初始为文本全覆盖。
LinkArea属性的格式为(x,y),x代表视为超链接文本的起始索引,y代表视为超链接文本的字符数,整体表示视为超链接的文本从第x个字符开始,数y个字符结束。用代码对其赋值时,需要以new运算符新建一个。
  1. linkLabel2.LinkArea = new LinkArea(0, 5);
复制代码
13.png


    1. LinkBehavior
    复制代码
    :LinkBehevior枚举类型,定义超链接下划线的样式,枚举值包括SystemDefault(系统默认)、AlwaysUnderline(始终有下划线)、HoverUnderline(鼠标悬停时有下划线)、NeverUnderline(无下划线),初始为SystemDefault。
    1. Links
    复制代码
    (控件属性框没有,但很重要):LinkCollection类型,定义超链接控件中包含的超链接的集合,初始集合仅有一个元素,即只包含一个超链接。
Links属性的存在意味着一个超链接控件可以包含多个超链接,可以用不同的字符范围代表不同的超链接,然后将其添加到Links集合就可以实现多个超链接,添加超链接语句如下,效果如下。
  1. linkLabel2.Links.Add(7, 2);//linkLabel2添加超链接,文本范围为第七个字符往后两个字符
复制代码
14.png


事件


    1. LinkClicked()
    复制代码
    :超链接单击事件,单击超链接文本时触发,常用来链接到执行文件、网址和电子邮箱。
输入以下代码到LinkClicked事件方法体里,将其链接到CSDN官网首页,测试。
  1. //超链接单击事件方法体
  2. private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  3. {
  4.     System.Diagnostics.Process.Start("https://www.csdn.net/");//链接到CSDN网站
  5. }
复制代码
此时linkLabel2的两个超链接都链接到CSDN官网首页。若要使两个超链接链接到不同的地方,需要给各个超链接绑定所访问的地址。我们把第二个超链接的add方法用以下代码重写一下,将其绑定到百度网站,然后再超链接单击事件方法体取其链接地址并访问,测试。
  1. linkLabel2.Links.Add(0, 5, @"https://www.csdn.net/");//linkLabel2添加超链接,链接地址为CSDN
  2. linkLabel2.Links.Add(7, 2, @"https://www.baidu.com/");//linkLabel2添加超链接,链接地址为百度
复制代码
  1. //超链接单击事件方法体
  2. private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  3. {
  4.     if(!string.IsNullOrEmpty(e.Link.LinkData as string))//空字符串防护
  5.     {
  6.         System.Diagnostics.Process.Start(e.Link.LinkData as string);//链接到百度网站
  7.     }            
  8. }
复制代码
此时,点击linkLabel2的第一个超链接,链接到了CSDN官网首页,点击第二个超链接,链接到了百度网站。若要实现更多指向不同链接的超链接,只需要按照这样的格式再Add更多的就好。
值得注意的是,在Add的时候,需要保证各个超链接所占的文本范围不能重叠,否则会报错。

总结

本文详解了两个显示信息控件——Label和LinkLabel。Label提供简单而又功能强大的不可编辑信息显示功能,显示文本内容,字体字号字形、文本所在位置及排布,甚至还可以客串PictureBox来显示图片。
LinkLabel提供可链接对象包括执行文件、网址和电子邮箱的超链接功能,支持各种状态和颜色来表示超链接的不同状态,支持一个LinkLabel包含多个超链接,并分别链接到不同的地址,灵活又强大。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持晓枫资讯。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
11
积分
2
注册时间
2024-6-30
最后登录
2024-6-30

发表于 7 天前 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表