`
izuoyan
  • 浏览: 9264400 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Winforms: 把Label显示为多行

阅读更多

问题描述:

我们经常用Label在对话框上显示提示信息。当需要提示的信息很长时,我们去发现Label不想TextBox那样具有Multiline这样的属性。在一个Textbox中,如果把Multiline属性设为true,该TextBox就能够显示多行文本。遗憾的是,Label并没有这样的属性。因此当我们试图用Label去显示很长的信息的时候,发现不能晚上。

问题重现:

1. 修建一个Winforms项目

2. Form1上添加一个LabelButton

3. button1添加Click事件,其事件处理器代码为:

private void button1_Click(object sender, EventArgs e)

{

label1.Text = "Long Text Test: In this test, we will try to set a very long text the label1.";

}

4. 编译运行。点击button1,我们发现Label显示的文字被部分截断了。如下图所示:

解决办法:

如果我们添加一个TableLayoutPanel,并把Labe作为其子控件。那么Winforms在计算Label的布局(Layout)的时候,发现单行无法全部显示时,就会自动把它显示为多行。

1. 新建一个Winforms项目

2. Form1上添加一个TableLayoutPanel。删掉最后一列,并修改属性如下:

//

// tableLayoutPanel1

//

this.tableLayoutPanel1.ColumnCount = 1;

this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));

this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);

this.tableLayoutPanel1.Controls.Add(this.button1, 0, 1);

this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;

this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);

this.tableLayoutPanel1.Name = "tableLayoutPanel1";

this.tableLayoutPanel1.RowCount = 2;

this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());

this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());

this.tableLayoutPanel1.Size = new System.Drawing.Size(284, 84);

this.tableLayoutPanel1.TabIndex = 4;

3. TableLayoutPanel中的第一行添加一个Label,在第二行添加一个Button。属性和button1Click事件和前面一样

4. 编译并运行。点击button1,我们发现此时label1里的文字显示正确。如下图所示:

我们注意到,label1不但被显示为多行,而且Winforms自动根据label1的实际宽度,调整了button1的位置。这正是WinformsLayout功能强大的地方。

这里提高的功能,对于开发多语言软件非常有用。在多语言环境下,同一个Label显示的文本可能是不一样的。Label能够完全显示一种语言,但当被翻译成另一种语言时,就一定能完全显示了。因此我们需要利用TableLayoutPanel来自动调节Label以及相邻空间的大小,以确保对话框的布局是正确的。

分享到:
评论

相关推荐

    C#135使Label控件显示出多行文字 源代码

    在C#编程中,Label控件通常用于显示单行文本,但有时我们可能需要在Label中展示多行文本,例如在展示长段落或者多条信息时。标题"\"C#135使Label控件显示出多行文字 源代码\"\"表明我们将探讨如何在C#环境下修改...

    shapelabel

    `Label`是一种常见的文本显示控件,用于显示单行或多行文本,通常不支持用户编辑。在许多编程环境中,如Windows Forms、WPF、Android、iOS等,都有对应的`Label`控件。它可以设置文本内容、字体、颜色、对齐方式等...

    C#控件学习C#控件学习

    - Label:用于显示文本信息,不可编辑。 - TextBox:用户可输入文本,单行或多行。 - Button:点击触发事件。 - CheckBox:勾选框,用于二选一或多选。 - RadioButton:单选按钮,同一组内只能选一个。 - ...

    在窗体中滚动字幕.rar

    2. **控件选择**:在WinForms中,我们通常不直接使用一个特定的“滚动字幕”控件,而是利用现有的控件如Label、RichTextBox或者自定义控件来实现。例如,可以使用Label的Text属性和Timer组件来模拟滚动效果。 3. **...

    WinForms疑难解答.doc

    在WinForms中,如果希望控件(例如Label、Button等)能够根据其内部文本内容的长度自动调整大小,可以通过设置控件的`AutoSize`属性为`true`来实现。此外,还需要将`AutoSizeMode`属性设置为`GrowAndShrink`,这意味...

    在实战中成长Windows Forms开发之路.pdf

    3. **Label**:显示静态文本。 4. **ListBox**:显示项目列表,允许用户选择一个或多个项目。 5. **ComboBox**:结合了 ListBox 和 TextBox 的功能,可以在下拉列表中选择项目,也可以手动输入文本。 6. **CheckBox*...

    winform应用程序常用控件

    **简介**:Label 控件用于在界面上显示静态文本信息,常用于向用户展示说明文字或数据值等。 **属性**: - **Visible**:用于控制 Label 控件的可见性。当此属性被设置为 `true` 时,控件可见;若设置为 `false`,...

    C#实现滚动字幕完整源码(测试可用)

    1. **Windows Forms与WinForms控件**:Windows Forms是.NET Framework的一部分,它提供了一个用于构建桌面应用的丰富环境。在这个案例中,滚动字幕可能基于一个自定义的`UserControl`,可能包含一个`Label`控件或者...

    使用C#开发数据库

    - **Multiline**:是否允许多行输入。 - **PasswordChar**:作为密码输入时,显示的字符。 - **ReadOnly**:是否只读。 - **Text**:文本框内的文本。 **3.3 ComboBox** - **Items**:组合框中的项集合。 - **Count...

    C#客显小demo

    此项目旨在展示如何在WinForms平台上创建一个基础的客显功能,便于零售或服务行业显示交易信息给顾客。下面将详细阐述C# WinForms客显程序的关键知识点。 1. **C#编程语言**:C#是一种面向对象的编程语言,由微软...

    从SQL加载多行并为每行创建标签

    4. **数据绑定与UI更新**:在WinForms中,创建标签(`Label`控件)来显示数据需要在每个迭代中动态创建新的标签实例,并设置其文本内容为当前行的某个字段值。你可以将这些标签添加到窗体或容器控件上,如`...

    C#常用控件实例下载

    - **TextBox**:用于输入和显示文本,支持多行和单行模式。 - **ComboBox**:下拉框,可让用户在预设选项中选择。 - **CheckBox** 和 **RadioButton**:勾选框和单选按钮,用于提供多个选项让用户选择。 - **...

    C#编程控件工具。。。

    **Label** 控件主要用于显示静态文本。 - **Text属性**:设置标签控件显示的文本。 - **AutoSize属性**:设置标签的大小是否根据其内容自动调整。 - **Font属性**:设置标签文本的字体样式。 - **ForeColor属性**:...

    CSharpControl.rar_C#编程_C#_

    - Label:用于显示文本信息,不支持用户输入。 - TextBox:允许用户输入和编辑文本,有多种模式如单行、多行、密码输入等。 - Button:点击后触发事件,常用于执行操作。 - CheckBox:提供勾选功能,可以用于...

    C# 《WinForm程序设计与实践》 4.2 WinForm常用控件.docx

    - **含义**:`Label` 控件主要用于在界面上显示静态文本信息。 - **常用属性和事件**: - `Text` 属性:用于设置或获取控件显示的文本。 - `ForeColor` 属性:用于设置文本的颜色。 - `Font` 属性:用于设置文本...

    如何使文本/标签在Windows窗体上滚动。

    在WinForms中,Label控件是一个简单的UI元素,主要用于显示一行或多行不可编辑的文本。默认情况下,Label控件的大小固定,超出其边界的文本将被截断,不会自动滚动。要实现文本滚动,我们需要借助其他控件或者自定义...

    winform渐隐效果的文本提示控件

    "winform渐隐效果的文本提示控件"就是这样一个设计,它旨在为用户提供一种平滑、优雅的方式来显示临时信息或提示,同时通过渐隐效果增加交互的吸引力。在本文中,我们将深入探讨如何实现这样的控件,以及相关的编程...

    C#大小写转换form程序

    为了保持用户界面的整洁,可以使用多行TextBox或者Label控件来显示结果。 10. **代码组织**: 使用良好的编程习惯,如封装转换逻辑到单独的方法中,可以使代码更易于理解和维护。此外,可以考虑使用面向对象的设计...

    模拟俄罗斯方块c#实现

    4.2 分数显示:在游戏界面上添加一个Label控件显示当前分数,并在行消除时更新分数。 4.3 游戏结束:当新的方块无法放置在游戏板顶部时,游戏结束,弹出对话框提示用户。 五、代码结构 5.1 将游戏逻辑封装在一个...

    winform下的记事本

    我们可以设置TextBox为多行文本模式,允许用户输入大量文本,并可以启用“接受richtext”属性以支持格式化文本。 2. MenuStrip:用于创建应用的菜单栏,包含“文件”、“编辑”等选项。例如,“文件”菜单可能有...

Global site tag (gtag.js) - Google Analytics