03
2012
04

控件的使用--滚动条

滚动条控件分为水平滚动条(HscrollBar)控件和垂直滚动条控件(VscrollBar)。水平滚动条控件名称的缺省值为Hscroll1、Hscroll2、……,垂直滚动条控件名称的缺省值为Vscroll1、Vscroll2等。
工具箱中水平滚动条控件、垂直滚动条控件的图标分别为 。
垂直和水平滚动条在滚动方向上不同,别的属性和事件都是相同的。
1.滚动条控件常用属性
(1)Max和Min属性:整数类型
 Max属性—返回或设置当滚动框处于底部或最右位置时,一个滚动条位置的Value属性的最大设置值。
 Min属性—返回或设置当滚动框处于底部或最左位置时,一个滚动条位置的Value属性的最小设置值。
这两个属性设置的范围可以是-32768~32767,缺省设置值为0~32767。
(2)Value属性:整数类型
返回或设置滚动条的当前位置,其返回值始终介于Max和Min属性值之间,包括这两个值。
(3)LargeChange属性:整数类型
该属性确定:当用户单击滚动条和滚动箭头按钮之间的区域时,滚动条控件Value 属性值的改变量。
(4)SmallChange属性:整数类型
该属性确定:当用户单击滚动箭头按钮时,滚动条控件Value 属性值的改变量。
2.滚动条控件常用事件
(1)Change事件
当滚动条移动,其Value属性值发生变化时,就触发了Change事件。
(2)Scroll事件
用户在按住鼠标并且拖动滚动条上的滚动块时,就出发了Scroll事件。
在用户按住鼠标键移动滚动块,未释放鼠标按键时,Scroll事件就接连不断的发生;在用户释放鼠标时,就不是产生Scroll事件,而是产生了Change事件。这两个事件之间存在这一定的联系:Scroll事件的发生(要求滚动条的Value值已经发生了改变),必将导致Change事件的发生,而Change事件的发生,则不一定导致Scroll事件的发生。
例8.10 调色板应用程序。
1)界面设计,如图8.17所示,具体做法如下:

图8.17 调色板程序
点击框架(Frame)控件,在窗体上方建立框架控件(Frame1);双击工具箱中的Picture控件,在框架左边放三个标签框,建立三个水平滚动条,在框架右边建立图片框控件Picture1;图片框中的背景颜色随着滚动块的拉动而随之发生改变。点击“应用”按钮后,标签框(Label4)中字体的颜色和图片框中背景的颜色就成一致。调整好各控件的位置,设置各控件属性如表8-9所示。


表8-9 属性设置
对象 属性 设计时属性值 说明
Frame1 Caption 三原色配比与预览
Label1. Caption 红
Label2 Caption 绿
Label3 Caption 蓝
Label4 Caption 坚持就是胜利
Command1 Caption 应用
2)代码设计:
Dim r As Single, g As Single, b As Single
Private Sub Form_Load()
HScroll1.Min = 0: HScroll1.Max = 255
HScroll2.Min = 0: HScroll2.Max = 255
HScroll3.Min = 0: HScroll3.Max = 255
End Sub
Private Sub HScroll1_Change() '红色滚动条的Change事件
r = HScroll1.Value
g = HScroll2.Value
b = HScroll3.Value
Picture1.BackColor = RGB(r, g, b) '设置图片框的背景颜色
End Sub
Private Sub HScroll1_Scroll() '红色滚动条的Scroll事件
r = HScroll1.Value
g = HScroll2.Value
b = HScroll3.Value
Picture1.BackColor = RGB(r, g, b)
End Sub
Private Sub HScroll2_Change() '绿色滚动条的Change事件
r = HScroll1.Value
g = HScroll2.Value
b = HScroll3.Value
Picture1.BackColor = RGB(r, g, b)
End Sub
Private Sub HScroll2_Scroll() '绿色滚动条的Scroll事件
Hscroll2_change '调用绿色滚动条的Change事件
End Sub
Private Sub HScroll3_Change() '蓝色滚动条的Change事件
r = HScroll1.Value
g = HScroll2.Value
b = HScroll3.Value
Picture1.BackColor = RGB(r, g, b)
End Sub
Private Sub HScroll3_Scroll() '蓝色滚动条的Scroll事件
Hscroll3_change '调用蓝色滚动条的Change事件
End Sub
Private Sub Command1_Click() '点击“应用”按钮
Label4.ForeColor = Picture1.BackColor
End Sub
从中我们可以发现,Scroll事件是针对滚动块的,它对于单击箭头按钮、单击滑块与箭头之间的区域没有反应,而Change事件对滚动块的移动、单击箭头按钮、单击滑块与箭头之间的区域都能做出反应。
« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。