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

 

 

参考、资源等见单章:https://blog.csdn.net/qq_35479392/article/details/100582710

(原文为Word版,食用更佳)

4.2 WinForm常用控件

组件 = 可视化的组件(控件) + 不可视化的组件     

控件

              含义:是界面组件;是带有可视化表示形式的组件;是包含在窗体内的对象。

              作用:主要功能是实现输入和输出;不同类型的控件具有其特有的属性和事件。

 

4.2.1 文本类控件

文本类控件 包括 标签控件(Label)、按钮控件(Button)、文本框控件TextBox)、格式文本框控件(RichTextBox)等。

 

1. Label控件

由System.Windows.Forms.Lable类提供,主要用于 显示文本

表1 Lable控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

Visible

确定该控件是可见的还是隐藏的

Font

显示控件中文本的字体

事件

Click

单击事件

             

 

2. Button控件

由System.Windows.Forms.Lable类提供,主要用于 接收用户对鼠标的操作,完成用户应用程序之间的交互

Button控件支持的操作包括:鼠标的单击、双击、键盘的Enter键操作

表2 Button控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

Size

控件的大小(以像素为单位)

Image

设置控件的图像

事件

Click

单击事件

             

 

 

 

3. TextBox控件

由System.Windows.Forms.TextBox类提供,主要用于 在应用程序中接收用户输入的文字,它允许用户输入任何字符。

用户的所有输入都保存在TextBox控件的Text属性中.

文本框支持3种输入模式单行多行密码 输入模式

单行:最多可输入2048个字符(默认)

多行:最多可输入32KB的文本(设置文本框的Multiline属性为true)

密码:无论用户输入什么文本,系统只显示密码字符(设置文本框的UseSystemPasswordChar属性为true)

表3 TextBox控件的常用属性和事件

类别

名称

用途

 

 

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

ScrollBars

指定对于多行编辑控件,将为此控件显示哪些滚动条

PasswordChar

设置密码字符串

UseSystemPasswordChar

指示编辑控件中的文本是否以默认的密码字符显示

ReadOnly

指示文本框中的文本是否为只读

Multiline

控制编辑控件的文本是否能跨越多行

 

事件

Click

单击事件

Leave

失去输入焦点时引发的事件

TextChanged

在控件上更改Text属性的值时引发的事件

             

 

 

 

 

 

 

 

 

 

 

 

 

 

 

代码实例

需求:设计一个简单的用户登陆界面,当输入用户名和密码正确时,提示登陆成功,否则提示登陆失败。

步骤:

首先,将所需的窗体及控件的属性以表格形式列出;

然后,通过控件的关联事件实现功能;

最后,测试。

代码:

Form1.cs:

namespace Controls

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void btnLogin_Click(object sender, EventArgs e)

        {

            if (txtName.Text == "user" && txtPassword.Text == "123")

            {

                MessageBox.Show("成功!");

            }

            else

            {

                MessageBox.Show("名或密码错误");

            }

        }

 

        private void btnReset_Click(object sender, EventArgs e)

        {

            //窗体中所有控件

            foreach (Control item in this.Controls)

            {

                if (item is TextBox)

                {

                    item.Text = "";

                }

            }

        }

    }

}

 

 

 

 

 

 

 

结果:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第1张图片

 

4. RichTextBox控件

RichTextBox,即有格式文本框控件,由System.Windows.Forms. RichTextBox类提供。RichTextBox控件使用标准的格式化文本,称为富文本格式。

主要作用:打开和保存RTF文件和普通ASCII文本文件,并且显示、输入和操作带有格式的文本,可以显示字体、颜色和链条,从文件加载文本和加载嵌入的图像,以及查找指定的字符,因此也常常被称为增强的文本框。

 

TextBox、RichTextBox 共同点和区别:

共同点:用于对文本的处理

不同点:前者 常用于输入较短的文本字符;后者 多用于显示和输入格式化的文本。

 

表4 RichTextBox控件的常用属性和事件

类别

名称

用途

 

 

属性

Name

指示代码中用来标识该对象的名称

Lines

多行编辑中的文本行,作为字符串值的数组

Size

控件的大小(以像素为单位)

Location

控件左上角相对于其它容器左上角的坐标

Rtf

与Text属性相似,但包括RTF格式的文本

事件

TextChanged

在控件上更改Text属性的值时引发的事件

             

 

 

 

 

代码实例

 

需求:设计一个简历编辑器,实现对jianli.rtf文件的各种操作。

设计:

(1)确定控件、及其属性、及关联的事件

窗体及控件属性设置

窗体和控件

属性

属性值

Form2

Text

简历编辑器

RichTextBox

Name

richTextBox1

button1

Name

Text

btnLoad

加载

Button2

 

Name

Text

btnSave

保存

Button3

Name

Text

btnCopy

复制

Button4

Name

Text

btnCut

剪切

Button5

Name

Text

btnPaste

粘贴

Button6

Name

Text

btnBackColor

背景色

Button7

Name

Text

btnColor

颜色

Button8

Name

Text

btnFont

字体

 

(2)功能实现

新增一个Form2窗体

 

 

 

(3)代码+运行结果图

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第2张图片

 

Main()函数中相应语句修改为:

Application.Run(new Form2());

 

 

 

什么是句柄?

参考 https://baike.baidu.com/item/句柄

句柄(handle),有多种意义,第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。 [1]  第二种解释:整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用句柄标识对象

 

代码实例注意点

确保在使用控件的LoadFile,该控件的句柄已经被创建。

 

参考msdn:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.richtextbox.loadfile?view=netframework-4.8

 

RichTextBox.LoadFile Method

LoadFile(String)

Loads a rich text format (RTF) or standard ASCII text file into the RichTextBox control.

 

public void LoadFile (string path);

path String

The name and location of the file to load into the control.

 

Note

The LoadFile method will not open a file until a handle is created for the RichTextBox. Ensure that the control's handle is created before calling the LoadFile method.

确保在使用控件的LoadFile,该控件的句柄已经被创建。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.2.2 选择控件

在使用文本框构建用户的输入界面时,虽然可以检查或验证用户输入的有效性,但仍然不能完全确保用户的输入是系统所期望的数据。为此,必须设计只能通过选择即可完成的数据输入的操作界面。.NET FrameworkWindows窗体提供了丰富的选择类控制,选择类控件包括单选按钮控件(RadioButton)、复选框控件(CheckBox)、列表框控件(ListBox)以及下拉框控件(ComBox)等。

 

  1. RadioButton控件

RadioButton,即单选按钮控件,是由System.Windows.Forms.RadioButton类提供的,主要作用于将一个或者多个选项列出,让用户从中选择一项

 

表1 RadioButton控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

Checked

指示单选按钮是否选中

AutoSize

指定控件是否自动调整自身的大小以适应其内容的大小

事件

CheckedChanged

每当Changed属性更改值时发生

 

2. CheckBox控件

CheckBox,即复选框控件,是由System.Windows.Forms.CheckBox类提供的,主要用于将一个或多个选项列出,让用户从中选择一项或多项。当某一个选项被选中后,其左边的小方框会显示有一个勾。

 

表2 CheckBox控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

Checked

指示单选按钮是否选中

CheckState

用来设置或返回复选框的状态,有3种可能:CheckedUncheckedIndeterminage

事件

CheckedChanged

每当Changed属性更改值时发生

CheckStateChanged

每当CheckState属性值更改时发生

 

 

 

 

3. ListBox控件

ListBox,即列表框控件,是由System.Windows.Forms.ListBox类提供的,主要作用于将一个集合数据以列表框的形式显示给客户,供用户从中选择一项或多项。ListBox控件有两种工作模式:单选模式和多选模式。单选模式时,列表框与单选按钮的功能相同;多选模式时,则与复选框功能相同。所不同的是,需要多个RadionButton控件或CheckBox控件才能构造一个选项组。而使用ListBox控件,则只需要一个就可以生成一个选项列表。

 

表3 CheckBox控件的常用属性和事件

类别

名称

用途

 

 

属性

Name

指示代码中用来标识该对象的名称

Enabled

指示是否启用该控件

Items

列表框中的项目集合

ItemHeight

列表框中项的高度

SelectionMode

指示列表框将是单项、多项还是不可选择

事件

SelectedIndexChanged

SelectedIndex属性值更改时发生

 

注意:当ListBox的SelectionMode的属性为MultiSimple或MultiExtended时,SelectedIndex返回的是选中的最小索引,SelectedItem返回的是选中的索引值最小的选项值。Items本身也包含很多属性,如Count属性指示Items包含项的个数等。

 

 

 

 

 

 

 

 

 

 

 

 

 

4. ComboBox控件

ComboBox,即下拉框控件,是由System.Windows.Forms.ComboBox类提供的,主要用于将一个集合数据下拉列表框显示给用户,供用户从中选中一项。ComboBox控件的默认行为是显示一个可编辑文本框,该文本框具有一个隐藏的下拉列表框。ComboBox控件只支持单选,可替代RadioButton选项组。

 

表4 ComboBox控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Items

列表框中的项目集合

事件

SelectedIndexChanged

SelectedIndex属性值更改时发生

 

5. 小综合 码实

需求:设计一个注册界面,分别定义RadioButton控件显示性别,ComboBox控件显示城市;CheckBox控件显示技术方向;ListBox控件显示兴趣爱好。当用户单击“注册”按钮时,如果填写的信息完整,提示“注册成功!“;否则,提示”请填写全部信息“。

设计:

选择类控件包括单选按钮控件(RadioButton)、复选框控件(CheckBox)、列表框控件(ListBox)以及下拉框控件(ComBox)等。

(1)控件属性列表 作成

(2)功能设计

              …

(3)运行结果和代码实现:

 

 

6. 注意点 码实

 

参考:https://blog.csdn.net/lubiaopan/article/details/5784846

Control是Form和各种Windows 窗体控件设备的基类,属于System.Windows.Forms命名空间,每个window控件设备都有一个Controls属性,这个属性为ControlCollection类型,ControlCollection为一个Control对象的集合,包含的是属于某个控件的所有控件对象,利用Control和ControlCollection我们可以轻松地对某个窗体程序所含各种控件进行控制。 当我们开发具有录入功能的界面的时候,为了防止提交后的二次(重复)录入,希望点击提交按钮并提示成功后,界面的所有文本框能够自动清空,一个笨方法是逐个的对TextBox进行Clear()操作,这种方法会产生大量的代码,并且效率很低。

对于上面所述的清空操作,可以仔细想一想,既然每个窗体控件都是继承自Control类,并且含有Controls属性,那利用Control和ControlCollection,利用函数的层层递归,就可以轻松实现Clear()操作,代码如下:...

原文链接:https://blog.csdn.net/lubiaopan/article/details/5784846

 

4.2.3 分组控件

分组类控件包括 面板控件(Panel)、分组框控件(GroupBox)、选项卡控件(TabControl)等。

1. Panel控件

面板控件,由System.Windows.Forms.Panel类提供,主要用于将其它控件组合在一起放在一个面板上,使这些控件更容易管理。

表1 Panel控件的常用属性和事件

类别

名称

用途

 

 

 

属性

Name

指示代码中用来标识该对象的名称

Size

控件的大小(以像素为单位)

Location

控件左上角对于其它容器左上角的坐标

AutoScroll

指示当前控件内容大于它的可见区域时是否自动显示滚动条

BorderStyle

指示面板是否有边框

事件

Paint

在控件需要重新绘制时发生

 

Panel控件 代码实例

需求:使用Panel控件设计一个显示列表,当单击“增加”按钮时,列表框中增加一项“子项”,当列表框大小超出可见区域时将自动显示滚动条。

设计:

表2  用到的控件及其属性设置

窗体和控件

属性

属性值

Form4

Text

面板

 

panel1

Name

Panel

AutoScroll

True

BorderStyle

Fixed3D

Button1

Name

btnAdd

Text

增加

listBox1

Name

lbxText1

 

 

运行结果和代码:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第3张图片

static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new Form4());

        }

 

  1. GroupBox控件

分组框控件,由System.Windows.Forms. GroupBox类提供,主要用于为其它控件提供可识别的分组。在窗体设计时,通常按功能把窗体划分为若干个区域,每个区域使用一个GroupBox控件表示。例如,把相关的各选项放入一个分组框,就可以为用户提供一个统一的外观或逻辑处理。

表2 GroupBox控件的常用属性和事件

类别

名称

用途

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

事件

Enter

在控件成为该窗体的活动控件时发生

 

 

 

 

 

  1. TabControl控件

选项卡控件,由System.Windows.Forms. TabControl类提供,主要用于将相关的组件组合到一系列选项卡页面上,TabControl控件管理TabPages集合

表3 TabControl控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

TabPages

选项卡集合

Text

选项卡显示的文本

Apperance

指示选项卡是绘制成按钮还是绘制成常规选项卡

事件

 Click

单击事件

 

Panel控件 代码实例

需求:设计一个分组窗体,当单击“选项”组中的“选项一”或“选项二”按钮时,在“标签”组中将对应显示TabControl控件中的选项卡。

设计:…

运行结果和代码:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第4张图片

 

 

 

 

 

 

 

4.2.4 其它控件

1. 控件

PictureBox,即图片框控件,是由System.Windows.Forms.PictureBox类提供,主要用于在应用程序中显示图片,图片框支持Bitmap、Gif、Jpg等多种图片格式。PictureBox控件的Image属性是一个Image类的值,Image类的对象用来保存图形信息,可以使用FormFile()方法将一个指定位置的图形文件加载到Image对象中。

表1 PictureBox控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Image

图片路径

Size

控件的大小(以像素为单位)

SizeMode

控件图片框将如何处理图像位置和控件大小

事件

 Click

单击事件

 

PictureBox控件 代码实例

需求:设计一个图片显示窗体,当单击“显示图片”按钮时,在图片框中将显示指定图像(图片路径自定义)

设计:

运行结果和代码:

              C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第5张图片

在Main函数相应地中修改为,Application.Run(new Form6());

 

 

 

2. 菜单控件

MenuStrip,即下拉菜单控件,是由System.Windows.Forms.MenuStrip类提供的,是应用程序菜单结构的容器。

表2 MenuStrip控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

Items

显示项的集合

事件

ItemClick

当单击项时发生

 

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第6张图片

在窗体界面编辑菜单栏的时候,点击 下三角 按钮 会出现如上图所示的三个选项:MenuItem、ComboBox、TextBox

 

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第7张图片

通过ShorcutKeys,可为菜单添加快捷键,如上图所示

 

PictureBox控件 代码实例

需求:设计一个菜单窗体,当单击“窗体”菜单中窗体名时,将打开对应的窗体界面,当单击“退出”菜单时,将退出程序。

设计:

运行结果和代码:

 

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第8张图片

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第9张图片

 

 

 

 

 

 

 

 

3. 定时器控件

Timer,即定时器控件,是由System.Windows.Forms.Timer类提供的。它是一个功能性控件,没有用户界面,主要用于在程序中按照时间间隔产生定时消息,然后执行消息代码。

表3 Timer控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Interval

事件的频率(以毫秒为单位)

Enabled

是否产生定时消息

事件

Tick

每当经过指定的时间间隔时发生

 

 

4. 状态栏控件

StatusStrip,即状态栏控件,是由System.Windows.Forms. StatusStrip类提供的,主要用于在应用程序中显示用户状态的简单信息,一般位于Windows窗体的底部。

表4 StatusStrip控件的常用属性和事件

类别

名称

用途

 

属性

Name

指示代码中用来标识该对象的名称

Text

显示的文本

Items

显示项的集合

事件

ItemClicked

当单击项时发生

 

在状态栏中可以使用文字或图标显示应用程序的状态,也可以用一系列图标组成动画来表示正在进行某个过程。

 

可为状态栏添加的窗格控件有:StatusLabel、ProgessBar、DropDownButton、SplitButton等;

表5 窗格控件意义

名称

说明

StatusLabel

表示StatusStrip控件中的一个面板

ProgessBar

显示进程的完成状态

DropDownButton

显示用户可以从中选择单个项关联的选项

SplitButton

表示作为标准按钮和下拉菜单的一个组合控件

 

 

 

StatusStrip控件 代码实例

需求:设计一个窗体,在状态栏中显示当前时间。

设计:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第10张图片

 

 

 

 

 

 

 

 

 

运行结果和代码:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第11张图片

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第12张图片

 

 

 

 

 

 

 

 

 

 

 

 

5. 进度条控件

ProgressBar,即进度条控件,是由System.Windows.Forms.ProgressBar类提供的,主要用于表示进度。ProgressBar控件

表6 ProgressBar控件的常用属性和事件

类别

名称

用途

 

 

属性

Name

指示代码中用来标识该对象的名称

Value

进度条的当前值

Minimum

进度条的范围下限

Maximum

进度条的范围上限

事件

Click

单击事件

 

ProgressBar控件 代码实例

需求:设计一个进度条窗体,程序运行时,显示进度,当进度值达到100时,提示“下载完毕!”。

设计:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第13张图片

 

 

 

 

 

运行结果和代码:

C# 《WinForm程序设计与实践》 4.2 WinForm常用控件_第14张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(#,C#)