第 5 章:常用控件

40
5 5 第第第第 第第第第

Upload: kalia-dejesus

Post on 02-Jan-2016

59 views

Category:

Documents


2 download

DESCRIPTION

第 5 章:常用控件. 常用控件的学习目标. 掌握常用控件的属性 属性名及其含义 掌握常用控件的方法 方法名称及其功能 掌握常用控件的事件 事件名称、事件触发的条件和时机 与控件相关的常见设计思想、算法 控件数组. 控件 —— 命令按钮( CommanButton ). 属性 Name 属性:控件名称 建议以 Cmd 为名称前缀,并以 “ 见名知义 ” 为原则 Caption 属性:显示在按钮控件上的标题 访问键的设置: &+ 字符 访问键的效果:字符带有下划线 访问键的功能:运行时按下 “ ALT+ 字符 ” 组合键即可触发该按钮的 Click 事件 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 5 章:常用控件

第第 55 章:常用控件章:常用控件第第 55 章:常用控件章:常用控件

Page 2: 第 5 章:常用控件

常用控件的学习目标• 掌握常用控件的属性

– 属性名及其含义• 掌握常用控件的方法

– 方法名称及其功能• 掌握常用控件的事件

– 事件名称、事件触发的条件和时机• 与控件相关的常见设计思想、算法• 控件数组

Page 3: 第 5 章:常用控件

控件——命令按钮( CommanButton)• 属性

– Name属性:控件名称• 建议以 Cmd为名称前缀,并以“见名知义”为原则

– Caption属性:显示在按钮控件上的标题• 访问键的设置:&+字符• 访问键的效果:字符带有下划线• 访问键的功能:运行时按下“ ALT+字符”组合键即可触发该按钮的 Click事件

– Enabled属性:返回或设置控件是否响应用户操作

– Visible属性

Page 4: 第 5 章:常用控件

控件——命令按钮( CommanButton)• 属性

– Style属性• 设置按钮为标准按钮( 0 )或图形按钮( 1 )

– BackColor属性• 背景颜色( Style=1的前提下设置有效)

– Picture属性• 按钮的图片( Style=1的前提下设置有效,可以用来设计漂亮的图形按钮)

Page 5: 第 5 章:常用控件

控件——命令按钮( CommanButton)• 事件

– Click事件• 鼠标单击• 获得焦点时,按 Enter键• 如果有访问键, Alt+访问键

• 实例– 例 5-1:根据需要对按钮可用性进行控制

Page 6: 第 5 章:常用控件

控件——标签( Label)• 属性

– Caption属性• 标签文本

– AutoSize属性• 标签大小是否自动适应文字内容

– Alignment属性• 文本对齐方式

– BackStyle属性• 背景是否透明( 1-不透明(默认值), 0-透明)

• 标签控件也可以响应 Click 、 DblClick等事件,但习惯上,仅仅把标签作为文本显示的控件。

Page 7: 第 5 章:常用控件

控件——文本框( TextBox)• 属性

– Text属性:文本框最重要的属性之一• 读取或设置文本框中的文本

读取文本框的内容s=txtname.text

设置文本框的内容txtname.text=s

– MaxLength属性• 设置或返回文本框中可以输入的字符最大数

( 0~65535)• 可以用来设置用户输入的数据长度(如身份证号)

Page 8: 第 5 章:常用控件

控件——文本框( TextBox)• 属性

– MultiLine属性• 文本框是否接受多行文本

– true —可多行, False(默认值)—单行– 演示属性设计和代码设计多行文本的实现

– ScrollBars属性• 是否显示滚动条(无、水平、垂直、水平和垂直)

– PasswordChar属性• 设置文本框字符掩码• 主要用于密码的输入• 该属性只影响文本框的显示,而不影响 Text属性,即不影响真实数据。

– Locked属性• 锁定文本框( True—不可编辑, False—可编辑)

Page 9: 第 5 章:常用控件

控件——文本框( TextBox)• 属性

– 文本编辑属性• SelStart• SelLength• SelText

实例 5-2 :在代码中选定文本

Page 10: 第 5 章:常用控件

控件——文本框( TextBox)• 事件

– Change事件• 文本框的 Text属性值发生改变时触发

• 一般用于对文本内容的变化进行即时响应,或监控文本内容的变化

• 例 5-3:根据文本框内容决定一个按钮可用性

Page 11: 第 5 章:常用控件

控件——文本框( TextBox)• 事件

– KeyPress事件• 文本框获得焦点并按下键盘上的按键后触发• 参数 KeyAscii:用户所按按键字符的 ASCII码

• 一般用于对用户输入的文字内容进行监控,并对用户输入的内容进行有效性验证或格式处理(如禁止非法数据的输入或自动转换为大写字母等)或者对某些特殊按键作处理(比如回车键往往表示执行确定功能等)

• 例 5-4

Page 12: 第 5 章:常用控件

• 综合实例 5-5:带密码的简易文本编辑器– 预备知识:剪贴板对象的基本操作

• 剪贴板对象: ClipBoard– SetText方法

» 格式 :ClipBoard.SetText TextString» 功能:将字符串 TextString放到剪贴板中

– GetText方法» 格式 :ClipBoard.GetText» 功能:获取剪贴板中的字符串内容» 例: s=Clipboard.GetText

– Clear方法» 格式 :ClipBoard.Clear» 功能:清除剪贴板中的内容

Page 13: 第 5 章:常用控件

• 综合实例 5-5:带密码的简易文本编辑器– 功能分析

• 密码验证– 如果密码=“1234567”,允许进入编辑器,否则提示重新输入密码

• 编辑器初始状态– 复制、剪切、粘贴、删除按钮不可用

• 单击“全选”按钮时– 选中文本框内容所有文字,并反相显示– 复制、剪切、删除按钮变为可用

• 单击“复制”按钮时– 将选中文字复制到剪贴板– 粘贴按钮变为可用

• 单击“清除”按钮时– 清空文本框所有文字– 复制、剪切、删除按钮不可用

Page 14: 第 5 章:常用控件

• 综合实例 5-5:带密码的简易文本编辑器– 功能分析

• 单击“剪切”按钮时– 将选中文字复制到剪贴板– 删除选中文字– 粘贴按钮变为可用– 剪切、删除、复制按钮变为不可用

• 单击“粘贴”按钮时– 文本框中的选中文字替换为剪贴板中的文字(如果没有选中文字,则在光标位置插入)

• 单击“删除”按钮时– 清空用户选中的文字– 复制、剪切、删除按钮不可用

• 用户在文本框中选择了文本时– 复制、剪切、删除按钮可用

Page 15: 第 5 章:常用控件

控件——复选框( CheckBox)• 属性

– Value属性• 复选框的选中状态

– 0 (缺省):未选– 1 :选中– 2 :灰色(半选中状态)

– 运行时的状态转换

2

0 1

复选框

Page 16: 第 5 章:常用控件

控件——复选框( CheckBox)• 事件

– Click事件• 复选框在运行中一般有两种状态(0 或 1 ),在

Click事件中,一般需要判断用户是选中还是清除,然后根据用户的操作进行不同的操作

• 典型的复选框 Click事件代码Private Sub Check1_Click()

If Check1.Value = 1 Then '选中复选框后进行的操作代码

Else '清除复选框后进行的操作代码

End IfEnd Sub

Page 17: 第 5 章:常用控件

控件——复选框( CheckBox)• 事件

– Click事件• 可以用常数 Checked 和 UnChecked表示复选框

Value属性的1 和 0Private Sub Check1_Click()

If Check1.Value = Checked Then

'选中复选框后进行的操作代码 Else '清除复选框后进行的操作代码 End If

End Sub– 复选框没有DblClick(双击)事件– 实例: 5-6

Page 18: 第 5 章:常用控件

控件——单选按钮( OptionButton )

• 属性– Value属性

• 单选按钮的选中状态– True:选中– False(缺省):不选中

• 事件– Click事件

• 运行时单击单选按钮只能表示选中,其 Click事件过程中一般不需要选择结构

Page 19: 第 5 章:常用控件

控件——框架( Frame)• 功能:作为控件容器对控件进行分组

– 分组的意义• 使得界面功能布局清晰、易懂• 对单选按钮进行分组(举例)

• 属性– Caption属性

• 将控件添加到框架的方法– 先建立框架控件,然后在框架控件内拖画控件(举例)

• 注意:如果将控件绘制在框架之外,然后将它移动到框架控件内部 ,并不能达到目的(举例)

– 如果希望将已经存在的若干控件放在框架中,可以先选择控件,然后“剪切”,然后选定框架控件,“粘贴”(举例)

Page 20: 第 5 章:常用控件

控件——框架( Frame)• 选择框架内的多个控件

– 不能直接使用鼠标拖曳的方法– Ctrl+鼠标点击(或鼠标拖曳)

• 综合实例– 5-7:字体设置对话框

Page 21: 第 5 章:常用控件

控件——列表框( ListBox)• 属性

– ListCount属性• 列表框中列表项的数目

– List属性• 列表框中列表项(列表内容)数组,下标为 0~listcount-1• 经常和循环结合获取列表框中的所有项目(举例,输出所有

项)For i=0 to list1.listcount-1

print list1.list(i)Next I

• 也可以通过修改数组元素的值改变列表项(举例)– MultiSelect属性

• 是否允许在列表框中多选(举例)– 0 :只能单选– 1 :简单复选– 2 :扩展复选: ctrl 、 shift、拖曳

Page 22: 第 5 章:常用控件

控件——列表框( ListBox)• 属性

– ListIndex属性• MultiSelect=0时

– 该属性表示所选列表项的索引号(举例)»根据 listindex属性值可以获取用户的选

择, -1表示没有进行选择»设置 listindex=-1可以取消选择

• MultiSelect=1 或 2 时– 该属性仅仅表示用户最近一次选择项的索引号,不一定表示选中(举例)»无法通过该属性值获取用户的选择情况»也无法设置 listindex=-1取消用户的选

Page 23: 第 5 章:常用控件

控件——列表框( ListBox)• 属性

– Text属性• MultiSelect=0时

– 该属性表示所选列表项文本内容(举例)• MultiSelect=1 或 2 时

– 该属性仅仅表示用户最近一次选择项的文本内容,不一定表示选中(举例)

• 属性值总 = 列表框名 .list( 列表框名 .listindex)

– Style属性• 列表框类型(举例)

– 1 :复选框样式,永远可以多选– 0 (缺省):标准样式

Page 24: 第 5 章:常用控件

控件——列表框( ListBox)• 属性

– Selected属性• 与 List属性类似,是一个数组,元素值时逻辑型,表示对应列表项的选择情况( True=选中, False= 未选中)

• 经常与循环结合获取允许复选的列表框的选中情况(举例,输出所有选中项)

For i=0 to list1.listcount-1if list1.selected(i) then

‘ 添加对选中项的操作代码End if

Next i

Page 25: 第 5 章:常用控件

控件——列表框( ListBox)• 属性

– SelCount属性• 选中的列表项的数目

– Sorted属性• 列表项是否排序

– True:自动排序– False(缺省):不排序

Page 26: 第 5 章:常用控件

控件——列表框( ListBox)• 方法

– AddItem方法• 在列表框中添加列表项• 格式

– 列表框名 .additem 文本 [, 索引值 ]»文本:添加的列表项文本» 索引值:所添加项目的索引

( <=listcount),如果省略,则添加到末尾

– 举例

• 在末尾添加列表项的另一个方法– List1.list(list1.listcount)= 列表项文本

Page 27: 第 5 章:常用控件

控件——列表框( ListBox)• 方法

– RemoveItem方法• 在列表框中移除列表项• 格式

– 列表框名 .removeitem 索引值» 索引值:准备删除的项目的索引

– 举例– Clear方法

• 清楚清除所有列表项

Page 28: 第 5 章:常用控件

控件——列表框( ListBox)• 事件

– Click事件• 单击某一列表项或改变某一列表项的选择状态(举例,

通过程序出发 click事件)– DblClick事件

• 鼠标双击某列表项• 按照 Windows习惯,双击 = 单击 + 确定按钮(以

PPT设置字体格式为例)– KeyPress事件

• 列表框获得焦点时键盘的击键• 通过参数 KeyAscii可以获知击键的 ASCII码

• 实例:– 5-8:列表项的添加和删除– 5-9:列表项的移动

Page 29: 第 5 章:常用控件

控件——组合框( Comobox)• 组合:文本框 + 列表框• 属性

– Style属性• 组合框类型(举例)

– 0 :下拉组合框(可选、可输入)– 1 :简单组合框(可选、可输入)– 2 :下拉列表框(可选、不可输入)

– Text属性• 组合框中的文本内容

Page 30: 第 5 章:常用控件

控件——组合框( Comobox)• 属性

– List属性:和列表框的 list属性相同

• 方法– Additem– Removeitem– Clear

Page 31: 第 5 章:常用控件

控件——组合框( Comobox)• 事件

– Click事件• 利用鼠标选择列表项时触发 Click事件

– DblClick事件– KeyPress事件

• 组合框获得焦点时按下键盘按键时触发(类似文本框的 KeyPress事件)

• 可以通过参数 KeyAscii获得用户所按按键信息– Change事件

• 组合框文本内容改变时触发(类似文本框的Change事件)

• 注意:用户通过鼠标从列表项中选择不触发change事件,而是 Click事件

Page 32: 第 5 章:常用控件

控件——组合框( Comobox)• 实例:字体设置对话框( 5-10)

– 预备知识• 系统字体的获取

For i = 0 To Screen.FontCount - 1Print Screen.Fonts(i)

Next I

Page 33: 第 5 章:常用控件

控件——组合框( Comobox)• 实例:字体设置对话框( 5-10)

– 预备知识• 颜色函数QbColor

– 格式:Qbcolor(p)– 说明: p 是介于 0~15 之间的一个整数,分

别代表常见的 16 种颜色

0 黑 4 红 8 灰 12 亮红1 蓝 5 洋红 9 亮蓝 13 亮洋红

2 绿 6 黄 10 亮绿 14 亮黄3 青 7 百 11 亮青 15 亮白

Page 34: 第 5 章:常用控件

控件——滚动条( ScrollBar)• 分为水平滚动条和垂直滚动条• 属性

– Value属性• 滚动滑块所在位置

– Max 和 Min属性• Value属性的最大值和最小值

– LargeChange 和 SmallChange

Page 35: 第 5 章:常用控件

控件——滚动条( ScrollBar)• 事件

– Change事件• Value属性值发生改变时触发

– Scroll事件• 拖动滚动块时触发• 注意拖动滚动块时 Value属性值发生了改变,但是不触发 Change事件,当放开滚动块的一刹那才触发 change事件(举例)

• 通常在 scroll事件中调用 change事件(举例)

Page 36: 第 5 章:常用控件

控件——滚动条( ScrollBar)• 实例

– 5-11:字体大小设置– 5-12:文字颜色配置

• 准备知识:颜色函数 RGB• 格式:

RGB ( RedValue,GreenValue,BlueValue)

• 说明– RedValue,GreenValue,BlueValue的取值范围都是 0~255

– 返回值是一个 long 类型的数值,代表一种颜色值

Page 37: 第 5 章:常用控件

控件——定时器( Timer)• 属性

– Interval属性• 时间间隔(单位:毫秒, 0~65535)

– Enabled属性• 定时器是否可用

– 停止定时器的两种方法• Enabled属性设置为 false• Interval属性设置为 0

Page 38: 第 5 章:常用控件

控件——定时器( Timer)• 事件

– Timer事件• 时间间隔 interval到来时的工作代码

• 实例– 5-13:电子时钟– 5-14:倒计时闹钟程序– 5-15:字幕程序

Page 39: 第 5 章:常用控件

控件数组• 控件数组的优点

– 可以通过数组对多个控件进行操作• 实例 5-16和实验 9-4比较

• 控件数组– 一组相同类型的控件,具有相同的名字和不

同的 index属性(特殊的数组)– 创建方法

• 已经存在的控件组成数组(演示)• 通过复制粘贴的方法(演示)

Page 40: 第 5 章:常用控件

控件数组• 控件数组

– 控件数组具有相同的名字和共同的事件,必须通过index属性进行区分• 示例:“最大化”、“还原”按钮控件数组• 控件数组事件的代码往往是一个 Select…Case 结构

• 程序运行过程中创建控件数组的方法– 设计阶段准备一个控件,设置 index=0(母本)– 利用 load 语句加载控件数组– 设置新添加控件为可见– 设置新添加控件的位置等其他属性

– 实例 5-17:动态添加控件的方法– 实例 5-18:简易计算器– 实例 5-19:调色板程序