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 | 垂直滚动条 |
单选按钮控件是一个能开能关的控件,通常由两个以上的单选按钮组成选项组,但这些单选按钮在同一时刻只能选一个。
重要属性:
序号 | 属性 | 描述 |
---|---|---|
1 | Text | 按钮上显示的文本 |
2 | Checked | 表示单选按钮的状态(True —— 被选定;False —— 未被选定) |
重要事件:
序号 | 事件 | 描述 |
---|---|---|
1 | Click | 单击后,使Checked属性为True |
2 | CheckedChanged | 当某个单选按钮的状态被发生变化,该事件随之被触发 |
重要属性:
序号 | 属性 | 描述 |
---|---|---|
1 | CheckState | 表示复选框状态 |
2 | Unchecked | 未选定 |
3 | Checked | 被选定 |
4 | Indeterminate | 不确定 |
重要事件:
序号 | 事件 | 描述 |
---|---|---|
1 | Click | 单击事件 |
2 | CheckedChanged | 选中状态改变事件 |
包括面板控件(Panel)
、分组控件(GroupBox)
和多页面控件(TabControl)
。先建立框架,然后将各控件放置其中。
面板可以响应Click和DoubleClick事件,但一般不需要编写事件过程。
分组控件把其他的控件组织在一起形成控件组。当框架移动时,控件可以相应地移动;框架隐藏时,控件也一起隐藏。
重要属性:
序号 | 属性 | 描述 |
---|---|---|
1 | Text | 给分组框加一个标题,使用户了解分组框的用途 |
TabControl控件很像一个卡片盒或一组文件标签,将一些相关内容组织在一个选项卡中,在同一个窗口区域通过选择标签转换显示不同的选项卡。
TabControl可以响应Click和DoubleClick事件,但该控件只是用来做界面的切换,很少对它们的事件进行处理 。
【例6-1】编写计算机选课程序
课程有三个等级,第一门课是基础课,第二门课是语言课,都为限选,第三门应用课是任选课。学生每选一门课,学生的选课情况立即显示在下面的多行文本框中。
列表框可显示多个选项供用户选择,不能直接修改其中的内容。如果选项的数量超过可显示的区域,列表框会自动地增加滚动条。
ListBox控件常用的属性
(1) Items
Items是一个集合,是ArrayList类对象 。
Items中选项的序号是从0开始的。
Items属性既可以在设计状态设置,也可以在程序中设置。
(2) SelectionMode
设置用户是否能够在列表项中做多个选择
None:不允许选择;
One:只能单选而不允许有多项选择;
MultiSimple:允许有简单的多项选择;
MultiExtended:允许有扩展式多项选项,即用户使用“Shif+单击”或“Shift+方向键”,可以将先前的选项扩展到当前选项,使用“Ctrl+单击” 可以进行各项选择。
(3) SelectedIndex
表示在程序运行时被选定的项的序号。只能在程序中设置或引用。
如果未选中任何选项,则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
组合框是文本框和列表框组合而成的控件。可以在文本框输入字符,其右侧有一个向下的箭头,单击此箭头可以打开一个列表框,可以从列表框中选择希望输入的内容。它有三种不同类型:
ComboBox控件常用的属性
Items:同列表框
Sorted:同列表框
SelectedItem:同列表框
SelectedIndex:同列表框
MaxDropDownItems:下拉列表能显示的最大条目数(1~100),如果实际条目数大于此数,将出现滚动条。
ComboBox控件常用的事件
Click、DoubleClick
SelectedIndexChanged:在 SelectedIndex 属性更改后发生
【例6-2】编写选课程序。
利用列表框和组合框增加和删除相关课程,并统计学时数。
用户界面的作用是负责管理与用户之间的交互,向用户显示数据,从用户处获得数据,解释由用户操作所引发的事件,并帮助用户查看任务的进度。
滚动条(ScrollBar)通常附在窗体上协助观察数据或确定位置,也可作为数据输入工具。滚动条有水平(HScrollBar)和垂直(VScrollBar)两种。
进度条(ProgressBar)用来指示事务处理的进度。
滚动条的主要属性
(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】滚动条和进度条应用。
用水平滚动条来设定参与运算的序列的长度,用进度条显示不同长度序列的处理进度不同
定时器以一定的时间间隔产生Tick事件。
属性:
Enabled:为False时定时器不产生Tick事件
Interval:触发Tick事件的间隔,单位ms
事件:
定时器控件只有一个Tick事件
产生Tick事件条件:
Enabled=True; Interval>0
方法:
Start、Stop
【例6-4】实时时钟。
菜单有下拉式菜单和弹出菜单(上下文菜单)。下拉式菜单的组成结构:
菜单设计概述
VS2008 .NET的菜单类包括:
MenuStrip,ToolStrip,ContextMenuStrip,StatusStrip四种控件。
MenuStrip为菜单条,ToolStrip为工具条,
ContextMenuStrip是快捷菜单,StatusStrip是状态条
MenuStrip控件的图标:
ContextMenuStrip控件的图标。
热键:当按住ALT键后,再按顶级菜单项的热键字符,可以打开该顶级菜单项的弹出菜单。如 “编辑(E)”
快捷键 :用户可以不打开主菜单,只要按住Ctrl键不放,再按快捷键字符
MenuStrip的常见属性
AllowItemReorder:默认值为False,当更改该属性值为True时,按下ALT键的同时可以用鼠标拖动各菜单项以调整其在菜单栏上的左右位置。
Dock属性:指示菜单栏在窗体中出现的位置,默认值为Top。
GripStyle属性::是否显示菜单栏的指示符,即纵向排列的多个凹点,默认值为Hidden。当更改该属性值为Visible时,显示位置由GripMargin属性指定。
Items:用于编辑菜单栏上显示的各菜单项。单击Items属性后“…”按钮,弹出“项集合编辑器”对话框 。
ShowItemToolTips :是否显示MenuStrip的工具提示。
Stretch:指示只是MenuStrip是否在其容器中从一端拉伸到另一端。
MenuStrip的常用事件
ItemClicked:当单击菜单栏上各主菜单项时触发的操作。
LayoutCompleted:当菜单栏上各主菜单项的排列顺序发生变化之后触发的操作。使用该事件时,AllowItemReorder属性必须设为True,即当程序运行时,按下Alt键重新排列菜单栏上各主菜单项的顺序之后触发该事件。
属性:
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。
ShowShortCutKeys:指示是否在菜单项上显示快捷键,默认值为True,即在菜单项上按照ShortCutKeys属性的设置显示快捷键。
Text属性:指示菜单项标题。
ToolTipText属性:控件的ToolTip文本。
事件:
Click事件:单击菜单项时触发。
DropDownClosed:关闭菜单项的子菜单时触发的操作。
DropDownItemClicked:单击菜单项的子菜单中任何一项时触发的操作。
DropDownOpened:菜单项的子菜单打开之后触发的操作。
DropDownOpening:打开菜单项的子菜单时触发的操作。
属性:
AllowTransparency:是否能调整窗体的不透明度。
AutoClose:是否能在不激活时自动关闭。
AutoSize:是否能自动调整大小。
DefaultDropDownDirection:控件的显示方向。
DisplayRectangle:获取显示区域的矩形。
DropShadwnEnabled:是否显示三维阴影的值。
Items:获取ToolStrip的所有子项。
LayoutStyle:是否子项的显示方式。
Opacity:确定窗体的不透明度。
OwnerItem:为此 ToolStripDropDown 所有者的 ToolStripItem。
Region:与 ToolStripDropDown 关联的窗口区域。
ShowCheckMargin:是否在 ToolStripMenuItem 的左边缘显示选中标记的位置。
ShowImageMargin:是否在 ToolStripMenuItem 的左边缘显示图像的位置。
SourceControl:获取上一个使此 ContextMenuStrip 被显示的控件。
TextDirection:指定项上的文本绘制方向。
创建主菜单
【例6-5】文本编辑器。
创建弹出菜单
主菜单通过窗体的MainMenuStrip属性设定其主菜单。
弹出菜单可以通过窗体中对象的ContextMenuStrip属性设定某个弹出菜单绑定到此对象。
给文本框tbContent绑定弹出菜单:
tbContent.ContextMenuStrip = ContextMenuStrip1;
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#.NET中,对话框根据其用途可以分为消息框、通用对话框和打印组件三大类。
C#中通过MessageBox类实现消息框的定义。
MessageBox.Show(“欢迎!”);
MessageBox.Show("大家晚上好!","问候");
MessageBox.Show("是否继续?","警告", MessageBox Buttons.YesNoCancel);
C#中通过MessageBox类实现消息框的定义。
MessageBox.Show("程序发生错误!","警告", MessageBoxButtons. RetryCancel, MessageBoxIcon.Warning);
MessageBox.Show("程序发生错误!","警告", MessageBoxButtons. RetryCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton. Button2);
利用通用对话框类控件可在窗体上创建打开文件、保存文件、颜色、字体、打印设置、打印预览等对话框。
通用对话框控件继承了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():将所有属性重新设置为默认值。
属性
Color:用来设置和获取用户选定的颜色。
属性:
序号 | 属性 | 用途 |
---|---|---|
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();
printPreviewDialog1.Document=printDocument1;
printPreviewDialog1.ShowDialog();
首先设置其属性Document为指定的PrintDocument类对象,打开PrintDialog对话框后,修改的设置将保存到PrintDocument类的对象中。当用户点击“确定”按钮后调用PrintDocument类的Print()方法实现打印。
【例6-7】文本编辑器的实现
实现一个类似于Windows写字板的程序。
常用控件
单选按钮、复选框、框架、列表框、组合框、滚动条、进度条、定时器
菜单设计
MenuStrip和ContextMenuStrip
对话框
消息框MessageBox、通用对话框CommonDialog 、打印组件