不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)

文章目录

  • 6.1 常用控件
    • 6.1.1 单选按钮(RadioButton)
    • 6.1.2 复选框(CheckBox)
    • 6.1.3 框架
      • 1. 面板控件Panel
      • 2. 分组框GroupBox
      • 3. TabControl控件
    • 6.1.4 应用实例
  • 6. 2 列表框和组合框
    • 6.2.1 列表框(ListBox)
    • 6.2.2 组合框(ComboBox )
    • 6.2.3 应用实例
  • 6.3 用户交互界面
    • 6.3.1 滚动条和进度条
    • 6.3.2 定时器
    • 6.3.3 菜单设计
      • 菜单设计概述
      • MenuStrip和ContextMenuStrip
      • 菜单项ToolStripMenuItem
      • 弹出菜单ContextMenuStrip
    • 6.3.4 鼠标事件
    • 6.3.5 对话框设计
      • 消息框
      • 通用对话框
      • 打开文件和保存文件
      • 颜色对话框(ColorDialog)
      • 字体对话框(FontDialog)
      • 打印组件
      • 打印设置对话框
      • 打印预览对话框
      • 打印对话框(PrintDialog)
    • 6.3.6 应用实例
  • 本章小结


6.1 常用控件

System.Windows.Forms命名空间中的控件

序号 控件 用途
1 Button 按钮
2 CheckBox 复选框
3 CheckListBox 复选框列表
4 ComboBox 组合框
5 DataGridview 显示一个列表
6 DateTimePicker 选择时间和日期
7 GroupBox 分组框
8 HScrollBar 水平滚动条
9 Label 标签
10 LinkLabel 超链接标签
11 ListBox 列表框
12 ListView 列表
13 MonthCalendar 月历控件
14 NumericUpDown 微调按钮,用于调节数字
15 PrctureBox 图像控件
16 PrintPreviewControl 打印预览控件
17 ProgressBar 进度条
18 PropertyGrid 列出其他对象的属性的控件
19 RadioButton 单选按钮
20 RichTextBox 富文本框控件
21 StatusBar 状态栏
22 TabControl 包含Tab选项卡的控件
23 TextBox 文本框
24 ToolBar 工具栏
25 ToolTip 工具提示
26 TrackBar 跟踪条
27 TreeView 树视图
28 VScrollBar 垂直滚动条

6.1.1 单选按钮(RadioButton)

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第1张图片

单选按钮控件是一个能开能关的控件,通常由两个以上的单选按钮组成选项组,但这些单选按钮在同一时刻只能选一个。

重要属性:

序号 属性 描述
1 Text 按钮上显示的文本
2 Checked 表示单选按钮的状态(True —— 被选定;False —— 未被选定)

重要事件:

序号 事件 描述
1 Click 单击后,使Checked属性为True
2 CheckedChanged 当某个单选按钮的状态被发生变化,该事件随之被触发

6.1.2 复选框(CheckBox)

重要属性:

序号 属性 描述
1 CheckState 表示复选框状态
2 Unchecked 未选定
3 Checked 被选定
4 Indeterminate 不确定

重要事件:

序号 事件 描述
1 Click 单击事件
2 CheckedChanged 选中状态改变事件

6.1.3 框架

包括面板控件(Panel)分组控件(GroupBox)多页面控件(TabControl)。先建立框架,然后将各控件放置其中。

1. 面板控件Panel

面板可以响应Click和DoubleClick事件,但一般不需要编写事件过程。

2. 分组框GroupBox

分组控件把其他的控件组织在一起形成控件组。当框架移动时,控件可以相应地移动;框架隐藏时,控件也一起隐藏。

重要属性:

序号 属性 描述
1 Text 给分组框加一个标题,使用户了解分组框的用途

3. TabControl控件

TabControl控件很像一个卡片盒或一组文件标签,将一些相关内容组织在一个选项卡中,在同一个窗口区域通过选择标签转换显示不同的选项卡。

TabControl可以响应Click和DoubleClick事件,但该控件只是用来做界面的切换,很少对它们的事件进行处理 。

6.1.4 应用实例

【例6-1】编写计算机选课程序

课程有三个等级,第一门课是基础课,第二门课是语言课,都为限选,第三门应用课是任选课。学生每选一门课,学生的选课情况立即显示在下面的多行文本框中。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第2张图片

6. 2 列表框和组合框

6.2.1 列表框(ListBox)

列表框可显示多个选项供用户选择,不能直接修改其中的内容。如果选项的数量超过可显示的区域,列表框会自动地增加滚动条。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第3张图片

ListBox控件常用的属性

(1) Items

Items是一个集合,是ArrayList类对象 。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第4张图片

Items中选项的序号是从0开始的。

Items属性既可以在设计状态设置,也可以在程序中设置。

(2) SelectionMode

设置用户是否能够在列表项中做多个选择
None:不允许选择;
One:只能单选而不允许有多项选择;
MultiSimple:允许有简单的多项选择;
MultiExtended:允许有扩展式多项选项,即用户使用“Shif+单击”或“Shift+方向键”,可以将先前的选项扩展到当前选项,使用“Ctrl+单击” 可以进行各项选择。

(3) SelectedIndex

表示在程序运行时被选定的项的序号。只能在程序中设置或引用。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第5张图片

如果未选中任何选项,则SelectedIndex为-1。

(4) SelectedItem

列表中选中的字符串。如允许多选,该属性返回选择的索引号最小的条目。如一个也没选,该值为空。

(5) SelectedItems

获取包含 ListBox 中当前选定项的集合。

(6) MultiColumn

ListBox是否支持多列。如果设置为True,则列表框支持多列显示,默认为False。

(7) Sorted

程序运行期间列表框或组合框的选项是否按字母表顺序排序。如果Sorted为True,则选项按字母表顺序显示

ListBox控件常用的方法

(1) Items.Add

对象.Items.Add(选项):把一个选项加入列表框
例如:ListBox1.Items.Add(“王涛")

(2) Items.Remove

对象. Items.Remove (选项):从列表框中删除指定的项
例如:ListBox1.Items.Remove (“李明")

(3)Items.Insert

对象.Insert(Index,Item):在列表框中插入指定的项。Index表示在列表框中插入的位置。
例如:ListBox1.Insert(4,”赵明”)

(4) Items.Clear

对象.Items.Clear:用于清除列表框的所有项目
例如:ListBox1.Items.Clear

6.2.2 组合框(ComboBox )

组合框是文本框和列表框组合而成的控件。可以在文本框输入字符,其右侧有一个向下的箭头,单击此箭头可以打开一个列表框,可以从列表框中选择希望输入的内容。它有三种不同类型:

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第6张图片

ComboBox控件常用的属性

 Items:同列表框
 Sorted:同列表框
 SelectedItem:同列表框
 SelectedIndex:同列表框
 MaxDropDownItems:下拉列表能显示的最大条目数(1~100),如果实际条目数大于此数,将出现滚动条。

ComboBox控件常用的事件

Click、DoubleClick
SelectedIndexChanged:在 SelectedIndex 属性更改后发生

6.2.3 应用实例

【例6-2】编写选课程序。

利用列表框和组合框增加和删除相关课程,并统计学时数。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第7张图片

6.3 用户交互界面

用户界面的作用是负责管理与用户之间的交互,向用户显示数据,从用户处获得数据,解释由用户操作所引发的事件,并帮助用户查看任务的进度。

6.3.1 滚动条和进度条

滚动条(ScrollBar)通常附在窗体上协助观察数据或确定位置,也可作为数据输入工具。滚动条有水平(HScrollBar)和垂直(VScrollBar)两种。

进度条(ProgressBar)用来指示事务处理的进度。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第8张图片

滚动条的主要属性

(1)Value属性:Value值的大小决定了滚动条中滑块的位置,反过来滑块的位置也影响值的大小。
在程序中使用该属性的语法如下:
Object.value[=number]

(2)Minimum(最小值)属性:将滑块移到滚动条的最左端或最上端时,滚动条的属性值达到最小,默认值为0。

(3)Maxinum(最大值)属性:将滑块移到滚动条的最右端或最下端时,滚动条的属性值达到最大,默认值为100。

(4) Smallchange(小变化)属性:当用鼠标在滚动条端点的某一箭头上单击时,属性值就相应地增加或减少。属性的设置值是用户每单击一次鼠标,属性增加或减少的量。

(5)Largechange(大变化)属性:当用鼠标在滚动条端点与滑块之间的任一位置单击时,属性值就相应地大幅增加或减少。属性的设置值是用户每单击一次鼠标,属性增加或减少的量。

滚动条的事件

(1)ValueChanged事件当通过 Scroll 事件或以编程方式更改Value属性时发生。
(2)Scroll事件在通过鼠标或键盘操作移动滚动框后发生。

进度条

在这里插入图片描述

ProgressBar(进度条)控件使用矩形方块从左至右显示某一过程的进程情况。

属性:

(1)Maximum/Minimum:读取或设置进度条的最大/小计数值。
(2)Value用于读取或设置进度条的当前计数值。

在对ProgressBar编程时,必须先确定Value属性上限。例如,下载文件,可将Maximum设置为文件长度。在该文件下载过程中,将Value属性设置为文件已经下载的字节数。
进度条的常用事件

Click、MouseDown和MouseMove

【例6-3】滚动条和进度条应用。

用水平滚动条来设定参与运算的序列的长度,用进度条显示不同长度序列的处理进度不同

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第9张图片

6.3.2 定时器

定时器以一定的时间间隔产生Tick事件。

属性:

Enabled:为False时定时器不产生Tick事件
Interval:触发Tick事件的间隔,单位ms

事件:

定时器控件只有一个Tick事件
产生Tick事件条件:
Enabled=True; Interval>0

方法:
Start、Stop

【例6-4】实时时钟。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第10张图片

6.3.3 菜单设计

菜单设计概述

菜单有下拉式菜单和弹出菜单(上下文菜单)。下拉式菜单的组成结构:

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第11张图片

菜单设计概述

VS2008 .NET的菜单类包括:

MenuStrip,ToolStrip,ContextMenuStrip,StatusStrip四种控件。

MenuStrip为菜单条,ToolStrip为工具条,

ContextMenuStrip是快捷菜单,StatusStrip是状态条

MenuStrip和ContextMenuStrip

MenuStrip控件的图标:

在这里插入图片描述

ContextMenuStrip控件的图标。
在这里插入图片描述

热键:当按住ALT键后,再按顶级菜单项的热键字符,可以打开该顶级菜单项的弹出菜单。如 “编辑(E)”

快捷键 :用户可以不打开主菜单,只要按住Ctrl键不放,再按快捷键字符

MenuStrip的常见属性

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第12张图片

AllowItemReorder:默认值为False,当更改该属性值为True时,按下ALT键的同时可以用鼠标拖动各菜单项以调整其在菜单栏上的左右位置。

Dock属性:指示菜单栏在窗体中出现的位置,默认值为Top。

GripStyle属性::是否显示菜单栏的指示符,即纵向排列的多个凹点,默认值为Hidden。当更改该属性值为Visible时,显示位置由GripMargin属性指定。

Items:用于编辑菜单栏上显示的各菜单项。单击Items属性后“…”按钮,弹出“项集合编辑器”对话框 。

ShowItemToolTips :是否显示MenuStrip的工具提示。

Stretch:指示只是MenuStrip是否在其容器中从一端拉伸到另一端。

MenuStrip的常用事件

ItemClicked:当单击菜单栏上各主菜单项时触发的操作。

LayoutCompleted:当菜单栏上各主菜单项的排列顺序发生变化之后触发的操作。使用该事件时,AllowItemReorder属性必须设为True,即当程序运行时,按下Alt键重新排列菜单栏上各主菜单项的顺序之后触发该事件。

菜单项ToolStripMenuItem

属性:

Name:菜单项的名字。
Checked:指示菜单项是否被选中,默认值为False。
CheckOnClick:决定单击菜单项时是否使其选中状态发生改变。默认值为false,即单击菜单项不会影响其Checked属性。
CheckState:指示菜单项的状态。与复选框CheckBox控件的CheckState属性相同,共有3个属性值:Checked,Unchecked和Indeterminate。
DisplayStyle:指示菜单项上的显示内容。共有4个属性值:None,Text,Image和ImageAndText,默认值为ImageAndText。
DropDownItems:单击该属性后的“…”按钮,调出“项集合编辑器”对话框,以此编辑该菜单项对应的子菜单中的各菜单项。
Image:指定在该菜单项上显示的图标。
ImageScaling:指定是否调整图标大小,默认属性值为SizeToFit,即调整图标大小以适应菜单项。该属性的另一个属性值为None,即不调整图标大小。
ShortCutKeys:为菜单项指定快捷键。单击该属性后的下拉按钮,出现设置页面,用于设置菜单项的快捷组合键。该属性的默认值为None。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第13张图片

ShowShortCutKeys:指示是否在菜单项上显示快捷键,默认值为True,即在菜单项上按照ShortCutKeys属性的设置显示快捷键。
Text属性:指示菜单项标题。
ToolTipText属性:控件的ToolTip文本。

事件:

Click事件:单击菜单项时触发。
DropDownClosed:关闭菜单项的子菜单时触发的操作。
DropDownItemClicked:单击菜单项的子菜单中任何一项时触发的操作。
DropDownOpened:菜单项的子菜单打开之后触发的操作。
DropDownOpening:打开菜单项的子菜单时触发的操作。

弹出菜单ContextMenuStrip

属性:

AllowTransparency:是否能调整窗体的不透明度。
AutoClose:是否能在不激活时自动关闭。
AutoSize:是否能自动调整大小。
DefaultDropDownDirection:控件的显示方向。
DisplayRectangle:获取显示区域的矩形。
DropShadwnEnabled:是否显示三维阴影的值。
Items:获取ToolStrip的所有子项。
LayoutStyle:是否子项的显示方式。
Opacity:确定窗体的不透明度。
OwnerItem:为此 ToolStripDropDown 所有者的 ToolStripItem。
Region:与 ToolStripDropDown 关联的窗口区域。
ShowCheckMargin:是否在 ToolStripMenuItem 的左边缘显示选中标记的位置。
ShowImageMargin:是否在 ToolStripMenuItem 的左边缘显示图像的位置。
SourceControl:获取上一个使此 ContextMenuStrip 被显示的控件。
TextDirection:指定项上的文本绘制方向。

创建主菜单

【例6-5】文本编辑器。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第14张图片

创建弹出菜单

主菜单通过窗体的MainMenuStrip属性设定其主菜单。
弹出菜单可以通过窗体中对象的ContextMenuStrip属性设定某个弹出菜单绑定到此对象。
给文本框tbContent绑定弹出菜单:
tbContent.ContextMenuStrip = ContextMenuStrip1;

6.3.4 鼠标事件

MouseDown:如果鼠标位于控件区域,按下鼠标按键。
MouseUp:如果鼠标位于控件区域,抬起鼠标按键。
MouseMove:如果鼠标在控件区域移动。
MouseEnter:鼠标进入控件区域。
MouseLeave:鼠标离开控件区域。

鼠标事件处理函数一般有两个参数:

object sender:产生该事件的对象的属性Name的值,例如,为Form1的MouseDown事件增加事件函数,单击Form1,第一个参数sender代表Form1对象。

System.Windows.Forms.MouseEventArgs e:代表事件的一些信息,事件不同,所代表的信息也不相同,鼠标按下事件处理函数中,e.X为发生事件时鼠标位置的x坐标,e.Y为发生事件时鼠标位置的y坐标,e.Button为MouseButtons.Left,表示单击了鼠标左键等等,Right和Middle则分别代表右键和中间键。e.Clicks为鼠标单击的次数,如果大于2次,则为双击。

鼠标事件应用

【例6-6】在窗体中的指定区域,单击或双击鼠标左键或右键,用Label控件显示鼠标的事件和位置。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第15张图片

6.3.5 对话框设计

在图形用户界面中,对话框是一种特殊的窗体,向用户显示信息,获得用户的响应 。

在C#.NET中,对话框根据其用途可以分为消息框、通用对话框和打印组件三大类。

消息框

C#中通过MessageBox类实现消息框的定义。

MessageBox.Show(“欢迎!”);
MessageBox.Show("大家晚上好!","问候");
MessageBox.Show("是否继续?","警告", MessageBox Buttons.YesNoCancel);

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第16张图片

C#中通过MessageBox类实现消息框的定义。

MessageBox.Show("程序发生错误!","警告", MessageBoxButtons. RetryCancel, MessageBoxIcon.Warning);
MessageBox.Show("程序发生错误!","警告", MessageBoxButtons. RetryCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton. Button2);

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第17张图片

通用对话框

利用通用对话框类控件可在窗体上创建打开文件、保存文件、颜色、字体、打印设置、打印预览等对话框。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第18张图片

通用对话框控件继承了System.Windows.Forms. CommonDialog类,.NET Framewrek中提供了多个常用的对话框控件和对应的类。

打开文件和保存文件

属性:
Filter:字符串类型,选择在对话框中显示的文件类型。
Filter="纯文本文件(.txt)|.txt|所有文件(.)|.
FilterIndex:表示打开对话框后,对话框的文件类型(T)下拉列表编辑框的下拉列表中首先被选中的项的索引号。

可以在设计阶段在属性窗口修改属性FilterIndex和Filter,也可在程序中用下列语句修改:

openFileDialog1.Filter="纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
openFileDialog1.FilterIndex=1
序号 属性 用途
1 FileName 用户选取的文件的路径和文件名
2 InitialDirectory 打开对话框首先显示该属性指定的文件夹中的文件Font 在对话框显示的字体
3 CheckPathExists 在对话框返回之前,检查指定路径是否存在
4 DefaultExt 如果用户未指定扩展名,自动增加属性指定的文件扩展名
5 RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
6 ShowHelp 启用“帮助”按钮
7 Title 将显示在对话框标题栏中的字符
8 ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列

事件:

FileOk:用户点击“打开”或“保存”按钮时要处理的事件。
HelpRequest:当用户点击“帮助”按钮时要处理的事件。

方法:

ShowDialog():打开对话框,根据方法的返回值确定用户单击了那个按钮,如返回

DialogResult.Cancle,用户单击了忽略按钮,如返回DialogResult.OK,用户单击了打开或保存按钮。

Reset():将所有属性重新设置为默认值。

颜色对话框(ColorDialog)

属性
Color:用来设置和获取用户选定的颜色。

字体对话框(FontDialog)

属性:

序号 属性 用途
1 ShowColor 控制是否显示颜色选项
2 AllowScriptChange 是否显示字体的字符集 Font 在对话框显示的字体
3 AllowVerticalFonts 是否可选择垂直字体
4 Color 在对话框中选择的颜色
5 FontMustExist 字体不存在时是否显示错误
6 MaxSize 可选择的最大字号
7 MinSize 可选择的最小字号
8 ScriptsOnly 指示对话框是否允许为所有非OEM 和Symbol 字符集以及ANSI 字符集选择字体
9 ShowEffects 是否显示下划线、删除线、字体颜色选项
10 ShowHelp 是否显示“帮助”按钮

事件:

Apply:点击“应用”按钮时要处理的事件。
HelpRequest:点击“帮助”按钮时要处理的事件。

方法:
ShowDialog():打开对话框。
Reset():将所有属性重新设置为默认值。

打印组件

PrintDocument类

是用于完成打印的类。

属性DocumentName:字符串类型,记录打印文档时显示的文档名。

方法Print:开始文档的打印。

事件BeginPrint:在调用Print方法后,在打印文档的第一页之前发生。
事件PrintPage:需要打印新的一页时发生。
事件EndPrint:在文档的最后一页打印后发生。

打印步骤:
创建PrintDocument组件的对象 。

使用页面设置对话框PageSetupDialog设置页面打印方式,这些设置作为要打印的所有页的默认设置。使用打印对话框PrintDialog设置对文档进行打印的打印机的参数。

调用PrintDocument.Print方法来实际打印文档 。

事件处理:

引发事件:BeginPrint、PrintPage、EndPrint ,其中每打印一页都引发PrintPage事件,打印多页,要多次引发PrintPage事件。

程序员应为这3个事件编写事件处理函数。BeginPrint事件处理函数进行打印初始化,一般设置在打印时所有页的相同属性或共用的资源,例如所有页共同使用的字体、建立要打印的文件流等。PrintPage事件处理函数负责打印一页数据。EndPrint事件处理函数进行打印善后工作。

打印设置对话框

用户使用此对话框能够设置纸张大小(类型)、纸张来源、纵向与横向打印、上下左右的页边距等。

pageSetupDialog1.Document=printDocument1;
pageSetupDialog1.ShowDialog();

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第19张图片

打印预览对话框

printPreviewDialog1.Document=printDocument1;
printPreviewDialog1.ShowDialog();

打印对话框(PrintDialog)

首先设置其属性Document为指定的PrintDocument类对象,打开PrintDialog对话框后,修改的设置将保存到PrintDocument类的对象中。当用户点击“确定”按钮后调用PrintDocument类的Print()方法实现打印。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第20张图片

6.3.6 应用实例

【例6-7】文本编辑器的实现

实现一个类似于Windows写字板的程序。

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)_第21张图片

本章小结

常用控件

单选按钮、复选框、框架、列表框、组合框、滚动条、进度条、定时器

菜单设计

MenuStrip和ContextMenuStrip

对话框

消息框MessageBox、通用对话框CommonDialog 、打印组件

你可能感兴趣的:(VS,C#,用户界面,控件,UI)