我也会VB编程共43页[1 2 3 4 5 6 7 >»<... 最后一页]

滚动条控件(ScrollBar)

滚动条常常用来附在某个窗口上帮助观察数据或确定位置,也可以用来作为数据输入的工具。在日常操作中,我们常常遇到这样的情况:在某些程序中,如 Photoshop ,一些具体的数值我们并不清楚,如调色板上的自定义色彩,这时,可以通过滚动条,用尝试的办法找到自己需要的具体数值。

    在 Visual Basic 中,滚动条分为横向(HscrollBar)与竖向(VscrollBar)两种,命名规则为:HsbX 或 VsbX ,如 HsbShow、VsbShow ,等等。它们在工具箱上的图标如图一:    


图一

    选中滚动条按钮,把鼠标指针放到界面设计区,然后拖动,画出符合自己要求的滚动条,或者直接双击该按钮,自动在界面设计区生成默认大小的滚动条,如图二所示:    


图二

    一、滚动条控件的属性:

    1、Max(最大值)与 Min(最小值)属性:

    滚动块处于最右边(横向滚动条)或最下边(竖向滚动条)时返回的值就是最大值;滚动块处于最左边或最上边,返回的值最小,如图三所示:     


图三

    Max 与 Min 属性是创建滚动条控件必须指定的属性,默认状态下, Max 值为 32767 ,Min 值为 0 。本属性既可以在界面设计过程中予以指定,也可以在程序运行中予以改变,如:

    HsbShow.Min = 3
  HsbShow.Max = 30

    2、Value(数值)属性:

    Value 属性返回或设置滚动滑块在当前滚动条中的位置,如图三所示。

    Value 值可以在设计时指定,也可以在程序运行中改变,如:

    HsbShow.Value = 24

    3、SmallChange(小改变)属性:

    当用户单击滚动条左右边上的箭头时,滚动条控件 Value 值的改变量就是 SmallChange,如图四:     


图四

    4、LargeChange(大改变)属性:

    单击滚动条中滚动框前面或后面的部位时,引发 Value 值按 LargeChange 设定的数值进行改变,如图五:     


图五

    二、滚动条控件的事件:

    与滚动条控件相关的事件主要是 Scroll 与 Change ,当在滚动条内拖动滚动框时会触发 Scroll 事件(但要注意,单击滚动箭头或滚动条时不发生 Scroll 事件),滚动框发生位置改变后则会触发 Change 事件。Scroll 事件用来跟踪滚动条中的动态变化,Change 事件则用来得到滚动条最后的值。

    三、示例:

    有如图六这样一个应用程序,当滚动条(HsbShow)的滚动块发生位移时,下面的显示标签(LblShow)自动显示滚动条当前的值;在拖动滚动框的过程中,显示标签(LblShow)则会显示“拖动中……”字样。     


图六

    1、创建界面。
其中,HsbShow 的 Min 为 0 ,Max 为 100 ,SmallChange 为 5 ,LargeChange 为 10 。

    2、双击滚动条(HsbShow),进入代码编写窗口:
Private Sub HsbShow_Change()
 LblShow.Caption = "滚动条当前值为:" & HsbShow.Value
End Sub

    3、滚动条的拖动事件:
Private Sub HsbShow_Scroll()
 LblShow.Caption = "拖动中……"
End Sub

有如图一这样一个应用程序,分别拖动红、绿、蓝三个滚动框来决定文本框的背景色,另外还有一个竖向滚动条,可以用来控制文本框的大小。     


图一

    一、图像的着色问题:

    自然界中千变万化的色彩,在电脑上可以用红绿蓝三种原色组合而成,这也正是图像处理软件中 RGB 模式的原理所在,如黑色是由皆为 0 的红绿蓝三种颜色组成,白色为皆为 255 的三原色合成,等等。

    在 RGB 模式中,每种色彩最多有 255 种变化,也就是说,只要 R 、G 、B 三种色彩都在各自的 255 范围内,这种色彩就是有效的。

    在 VB 中,也用 RGB 来作为色彩的描述,如文本框的背景色为白色,则表示为:Text1.Backcolor = RGB(255,255,255)。

    二、VB 中对象的初值储存问题:

    在VB中,常常会对某个对象进行位置移动,或者动态改变对象的尺寸,一般情况下,都会在程序调入后先对原始数据进行一些存储,以便发生位移或改变大小后能恢复原样,而这一功能,是通过初值储存来完成的。

    方法是,将原始数据,如坐标值、原始长宽高,等等,赋值给某个变量,最后通过变量的调用就能完成默认状态的恢复。

    三、程序设计:

    1、创建如图一的程序界面。

    文本框的属性:
  Name:TxtContent  Text:None

    三个表示色彩的标签:

    红色标签,Name:LblRed  Caption:红色
  绿色标签,Name:LblGreen  Caption:绿色
  蓝色标签,Name:LblBlue  Caption:蓝色

    三个表示色彩的横向滚动条:
  Min:0  Max:255  SmallChange:1  LargeChange:5

    显示“大小”字样的标签:
  Name:LblSize  Caption:大小

    对文本框大小进行控制的竖向滚动条:
  Name:VsbSize  Min:0  Max:100  SmallChange:1  LargeChange:5

    用于显示大小变化尺寸的标签:
  Name:LblShow  Caption:None

    2、双击红色滚动条,在弹出的程序代码窗口中输入:

    Private Sub HsbRed_Change()
  TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value)
  End Sub

    另外,就 HsbRed 的 Scroll 事件也输入上面的代码:

    Private Sub HsbRed_Scroll()
  TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value)
  End Sub

    3、同理所得,在绿色与蓝色滚动条中输入相应代码。这样,通过滚动条控制文本框背景色的目的达到了。

    4、在“通用”选项中定义全局全量,用来储存文本框的原始尺寸:

    Dim Iwidth As Integer
  Dim Iheight As Integer

    5、用来改变文本框尺寸的竖向滚动条:

    Change 事件:
  Private Sub VsbSize_Change()
  TxtContent.Width = Iwidth * (VsbSize.Value / 100)
  TxtContent.Height = Iheight * (VsbSize.Value / 100)
  LblShow.Caption = VsbSize.Value & "%"
  End Sub

    Scroll 事件:
  Private Sub VsbSize_Scroll()
  TxtContent.Width = Iwidth * (VsbSize.Value / 100)
  TxtContent.Height = Iheight * (VsbSize.Value / 100)
  LblShow.Caption = VsbSize.Value & "%"
  End Sub

    6、调试:

    按 F5 键进行调试,发现文本框的尺寸无法调整。这是因为,没有在初始状态下将原文本框的宽度、高度赋值给变量。

    在 Form 的 Load 事件中输入以下代码:

    Private Sub Form_Load()
  Iwidth = TxtContent.Width
  Iheight = TxtContent.Height
  LblShow.Caption = "100%"
  End Sub

    7、最后结果如图二:     


图二

小小调色板程序

      窗体布局及控件设置:

1.  三个Label标签框,三个HscrollBar滚动条控件组,三个TextBox文本框控件组

2.  HScroll1(0)HScroll1(1)HScroll1(2)MaxSmallChang LargeChang的值分别为255432

3.  在滚动控件输入以下代码

Private Sub HScroll1_Change(Index As Integer)
     Text1(Index).Text = HScroll1(Index).Value
     R = HScroll1(0).Value ' 读取第一个滚动条的值为 R 值
     G = HScroll1(1).Value ' 读取第一个滚动条的值为 G 值
     B = HScroll1(2).Value ' 读取第一个滚动条的值为 B 值
     Label1.BackColor = RGB(R, G, B) ' 设置标签的背景颜色
    End Sub

Private Sub Text1_Change(Index As Integer)
   HScroll1(Index).Value = Text1(Index).Text '将文本框接受的值赋予滚动条
End Sub

我也会VB编程 共43页[1 2 3 4 5 6 7 >»<... 最后一页]