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

这篇具有很好参考价值的文章主要介绍了C#控件编程之显示信息控件(Label、LinkLabel)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

目录

Label控件 

属性

布局

设计 

外观 

行为 

LinkLabel控件 

属性

事件 

小结


Label控件 

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

属性

布局

  • AntoSize:bool类型,指示是否启用根据标签内容字号自动调整大小,初始为true。

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

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

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

设计 

  • Name:string类型,定义代码中用于标识控件的成员变量名,初始为Label1。

        Name属性需要在GenerateMember属性为true才生效,若GenerateMember属性为false,将不会为控件生成成员变量,此时在代码中输入Name会报错。

        c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • GenerateMember:bool类型,指示是否为控件生成成员变量,初始为true,上述已经提到。
  • Locked:bool类型,指示是否可以通过鼠标移动控件(Location)或者调整控件尺寸(Size),初始为false。

        当Locked属性为true时,在设计界面选中该控件会在左上角显示一把锁,提示不能通过鼠标移动控件和调整尺寸,但可以通过输入Location坐标或者Size尺寸数值来操作它。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

 c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • Modifiers:枚举类型,定义控件的可访问性级别,枚举值有Private(同类可访问)、Public(公开访问)、Protected(同类及派生类可访问)、Internal(同程序集可访问)、Protected Internal(同程序集及派生程序集可访问),初始为Private。(注:要想在其他类里访问该控件,需要修改这个属性,这个属性无法写代码修改

        当需要在其他类里访问该控件时,应设置Modifiers为合适的属性,用Public最方便,访问无限制,若保持Modifiers为Private,在其他类访问该控件时会报错。

外观 

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

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • BackgroundImage:Image类型,定义控件的背景图像,初始为空,即透明背景。
  • BackgroundImageLayout:ImageLayout枚举类型,定义控件背景图像布局方式,枚举值有None(靠左显示)、Tile(重复显示)、Center(居中显示)、Stretch(拉伸占满显示)、Zoom(按比例缩放显示),初始为Tile。
  • Cursor:Cursor枚举类型,定义鼠标移动到控件上显示的光标,初始为Default。

        在Cursor属性的下拉框展示了各种枚举值所对应光标种类供开发者选择。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • Font:Font类型,定义控件文本的字体和字号等,初始为宋体,9pt(小五)。

        Font属性提供了一个供开发者选择的交互界面,包括多种不同字体选择、四种字形选择、多种不同字号选择、删除线和下划线选择等,类似于Word设置字体的交互界面。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • ForeColor:Color类型,定义控件文本的颜色,初始为系统颜色SystemColors.ControlText(文本黑)。
  • Image:Image类型,定义控件上显示的图像,初始为空。

        Label虽是标签控件,但也提供了图像显示功能,有时是可以客串PictureBox控件使用的。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • ImageAlign:ContentAlignment枚举型,定义控件显示图像的对齐方式,初始为MiddleCenter(水平、竖直居中)。

        ImageAlign提供左上、左中、左下、中上、中中、中下、右上、右中、右下九种不同位置,在其下拉框可以形象的直接选择。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

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

行为 

  • AutoEllipsis:bool类型,指示是否自动处理溢出宽度以外的文本,初始为false。

        所谓自动处理,实际上就是对溢出文本以省略号显示。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • ContextMenuStrip:定义用户右击控件时显示的快捷菜单,初始为空。(注:若要创建此菜单,需要写代码创建或先拖入ContextMenuStrip控件后再到此处选择,详见我的另一篇)C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的用法_c# contextmenustrip用法_To be better now的博客-CSDN博客
  • Enabled:bool型,指示是否启用该控件,初始为true。

        标签控件的Enabled属性为false时,将默认显示灰色文本。

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • Visible:bool类型,指示是否显示该控件,初始为true,为false则隐藏控件。
     

LinkLabel控件 

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

属性

  • ActiveLinkColor:Color类型,定义单击超链接控件且未释放鼠标时,超链接显示的颜色,初始为Red(红色)。
  • DisabledLinkColor:Color类型,定义当超链接被禁用时的颜色,初始为RGB(133,133,133)(灰色)。

        注意,这个属性是超链接被禁用时触发,而不是超链接控件被禁用时触发。如果在属性框把控件的Enabled属性置为false,将直接显示默认灰色,跟此属性无关。要使这个属性起作用,需要使用以下代码,其中0可以换成其他索引index。

linkLabel1.Links[0].Enabled = false;//linkLabel1控件的第一条超链接置为不可用

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • LinkColor:Color类型,定义超链接默认显示的颜色,初始为Blue(蓝色)。
  • LinkVisited:bool类型,指示超链接是否按已访问的样式呈现 ,初始为false。
  • VisitedLinkColor:Color类型,定义当LinkVisited属性为true时,超链接显示的颜色,初始为RGB(128,0,128)(看着像是一种紫色)
  • LinkArea:LinkArea类型,定义超链接控件文本中视为超链接的文本范围,初始为文本全覆盖。

        LinkArea属性的格式为(x,y),x代表视为超链接文本的起始索引,y代表视为超链接文本的字符数,整体表示视为超链接的文本从第x个字符开始,数y个字符结束。用代码对其赋值时,需要以new运算符新建一个。

linkLabel2.LinkArea = new LinkArea(0, 5);

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

  • LinkBehavior:LinkBehevior枚举类型,定义超链接下划线的样式,枚举值包括SystemDefault(系统默认)、AlwaysUnderline(始终有下划线)、HoverUnderline(鼠标悬停时有下划线)、NeverUnderline(无下划线),初始为SystemDefault。
  • Links(控件属性框没有,但很重要):LinkCollection类型,定义超链接控件中包含的超链接的集合,初始集合仅有一个元素,即只包含一个超链接。

        Links属性的存在意味着一个超链接控件可以包含多个超链接,可以用不同的字符范围代表不同的超链接,然后将其添加到Links集合就可以实现多个超链接,添加超链接语句如下,效果如下。

linkLabel2.Links.Add(7, 2);//linkLabel2添加超链接,文本范围为第七个字符往后两个字符

c#显示控件,C#Windows窗体应用程序基础,c#,windows,ui,.net

事件 

  •  LinkClicked():超链接单击事件,单击超链接文本时触发,常用来链接到执行文件、网址和电子邮箱。

        输入以下代码到LinkClicked事件方法体里,将其链接到CSDN官网首页,测试。

//超链接单击事件方法体
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    System.Diagnostics.Process.Start("https://www.csdn.net/");//链接到CSDN网站
}

        此时linkLabel2的两个超链接都链接到CSDN官网首页。若要使两个超链接链接到不同的地方,需要给各个超链接绑定所访问的地址。我们把第二个超链接的add方法用以下代码重写一下,将其绑定到百度网站,然后再超链接单击事件方法体取其链接地址并访问,测试。

linkLabel2.Links.Add(0, 5, @"https://www.csdn.net/");//linkLabel2添加超链接,链接地址为CSDN
linkLabel2.Links.Add(7, 2, @"https://www.baidu.com/");//linkLabel2添加超链接,链接地址为百度
//超链接单击事件方法体
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    if(!string.IsNullOrEmpty(e.Link.LinkData as string))//空字符串防护
    {
        System.Diagnostics.Process.Start(e.Link.LinkData as string);//链接到百度网站
    }            
}

        此时,点击linkLabel2的第一个超链接,链接到了CSDN官网首页,点击第二个超链接,链接到了百度网站。若要实现更多指向不同链接的超链接,只需要按照这样的格式再Add更多的就好。值得注意的是,在Add的时候,需要保证各个超链接所占的文本范围不能重叠,否则会报错。

小结

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

每篇寄语

        世界上最难遵循的规则是度,度源于素养,而素养则来源于日常生活一点一滴的细节的积累,这种积累是一种功夫文章来源地址https://www.toymoban.com/news/detail-546686.html

到了这里,关于C#控件编程之显示信息控件(Label、LinkLabel)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# 通过自定义控件实现炫酷的时间显示

    先看效果 话不多说,直接上代码 基础的自定义控件 LED_Num

    2024年02月09日
    浏览(35)
  • 【C#学习记录】添加控件后工具箱不显示是什么原因

    大家好,我是雷工! 今天在一个Winform程序中用到将WindowsMediaPlayer控件添加到工具箱,但添加了好几次,工具箱内均无法显示,经翻找资料和验证确认是跟创建项目时选择的模板有关,为了遇到同样问题的小伙伴能够快速解决问题,现将问题情况记录如下: 1、VS版本信息:

    2024年02月13日
    浏览(35)
  • C# 添加现有的窗体的时候,为何窗体的控件不显示了?

    有的项目中一些功能是可以复用的,将原始项目中的窗体文件添加到新项目时,发现有一些问题。添加完之后,打开的窗体发现没有显示任何控件,窗体的大小还变小了? 将Form1.cs Form1.resx Form1.Designer 三个文件直接复制到新项目的目录下,然后直接在新项目上选择添加现有项

    2024年02月10日
    浏览(33)
  • Windows窗体学这一篇就够了(C#控件讲解)

    目录 一、Form窗体 1.1窗体的创建和删除 1、添加窗体 2、删除窗体 3、多窗体的使用 1.2、窗体属性 1.2.1更换窗体图标 1.2.2隐藏窗体的标题栏(FormBorderStyle属性) 1.2.3控制窗体的显示位置(StartPosition属性) 1.2.4窗体背景图片的设置 1.2.5窗体的显示与隐藏 1.3窗体的事件 1.3.1单击事件(C

    2024年02月11日
    浏览(25)
  • C# 读取带CheckBox复选框控件的表格-并集成到Windows Service里面

    最近的项目要求读取xls文件内的单元格,并且单元格旁边会有复选框标识类型。 搜了下只有java的POI有例子,NOPI看项目文档好像是没有实现读取控件的功能。 java实现 POI  POI如何解析出excel 中复选框是否被选中 https://blog.csdn.net/qq_29832217/article/details/104413475  C#导出 Excel 时,

    2024年02月14日
    浏览(71)
  • C# Windows 窗体编程入门详解

    C# Windows 窗体编程入门详解 基于Web的B/S架构应用程序近年来确实非常流行,B/S易于部署、易于维护的特点使Web应用程序开发得到了前所未有的发展。但是,Web应用程序的缺点是,它们有时不能提供丰富的用户体验以及对本机系统环境的控制和利用,例如刷新问题和长时间运行

    2024年02月11日
    浏览(33)
  • CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本

    Aspose.CAD 是一个独立的类库,以加强 Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并

    2024年02月04日
    浏览(32)
  • C#程序设计——Windows应用程序开发,1、初步掌握Windows应用程序的设计方法。2、掌握常用窗体控件的使用方法。

    初步掌握Windows应用程序的设计方法。 掌握常用窗体控件的使用方法。 1、设计一个Windows应用程序,创建一个用于添加学生个人基本信息的窗体,窗体下方法同时滚动信息“天行健,君子以自强不息!”。   要示如下: 如图1所示,设计窗体界面控件的布局 图1 学生信息管理

    2024年02月10日
    浏览(57)
  • C#桌面程序(winform)如何一步步集成内置WebApi(owin技术),解耦IIS,并将Api接收信息推给桌面窗体控件展示

    最近工厂有个需求,服务器上部署了一个服务,此服务要把信息推送给现场多台工控机上的CS上位机程序。由于涉及到多个软件之间的通信,做架构时,首先排除掉中间表形式,从效率和稳定性上也排除掉了Socket,最后采用了WebApi接口形式来做通信。但是有个问题,上位机程

    2023年04月08日
    浏览(29)
  • asp.net老年大学教务管理信息系统VS开发sqlserver数据库web结构c#编程

    一、源码特点         asp.net 老年大学教务管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 asp.net老年大学教务管理系统 应用技术:asp.net c#+sqlserver 开发工具:

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包