使用 ScrollBar 作为输入设备
滚动条通常与 TextBox 或窗口一起使用,但有时也可作输入设备。因为ScrollBar 控件可按比例指示当前位置,所以可以单独使用以控制程序输入,如控制声音音量或调整图片颜色。HScrollBar(水平)和 VScrollBar(垂直)控件是独立的,它有自己的事件、属性和方法集。ScrollBar 控件与附属于TextBox、ListBox、ComboBox 或 MDI 窗体的内部 ScrollBar 不同。(TextBox 和 MDI 窗体具有 ScrollBars 属性,可增加或删除附属于控件的 ScrollBar。) 现在 Windows 界面提示行支持 Slider 控件作为输入设备而不用ScrollBar。关于 Slider 控件的例子,请参阅 Windows 95 的控件面板。VisualBasic 的专业版和企业版中包含一个 Windows 95 风格的 Slider 控件。 详细信息 关于 ScrollBar 控件的详细信息,请参阅第七章“使用 VisualBasic 的标准控件”。
显示图片和图形的控件 因为 Windows 是图形用户界面,所以在应用程序上界面显示图形图像的方法十分重要。Visual Basic 包含四个控件以简化与图形有关的操作,它们是PictureBox 控件、Image 控件、Shape 控件和 Line 控件。 Image、Shape 和 Line 控件有时被称作轻量图形控件。它们需要较少的系统资源,因此比 PictureBox 控件显示得快并且包含 PictureBox 中可用的属性、方法和事件的子集。每一个控件都适用于一个特定的目的。
使用 PictureBox 控件 PictureBox 控件的主要作用是为用户显示图片。实际显示图片由 Picture 属性决定。Picture 属性包括被显示的图片的文件名(及可选的路径名)。 注意 窗体对象也具有 Picture 属性,通过设置该属性可直接在窗体背景上显示图片。 要在运行时显示或替换图片,可利用函数 LoadPicture 来设置 Picture 属性。提供图片文件名和可选路径名,由 LoadPicture 函数处理加载和显示图片的细节。 picMain.Picture = LoadPicture("VANGOGH.BMP") PictureBox 控件具有 AutoSize 属性,当该属性设置为 True 时,PictureBox能自动调整大小与显示的图片匹配。如果要用 AutoSize 属性设置为 True的 PictureBox ,设计窗体时就需要特别小心。图片将不考虑窗体上的其它控件而调整大小,这可能导致意想不到的后果,如覆盖其它控件。设计时应通过加载每一幅图片来检查是否有这种现象发生。
使用 PictureBox 作为容器 Picture box 控件也可以用作其它控件的容器。像 Frame 控件一样,可以在PictureBox 控件上面加上其它控件。这些控件随 PictureBox 移动而移动,其 Top 和 Left 属性是相对 PictureBox 而言,而与窗体无关。 PictureBox 容器的一种普通用法是 ToolBar 或 StatusBar 。可将 Image 控件置于这些容器中作为按钮或添加Label显示状态信息。将Align属性设置为Top、Bottom、Left或Right ,PictureBox将粘贴在窗体的边缘。图 3.16 为一个Align属性设置为Bottom的PictureBox 。它包含两个可用于显示状态信息的 Label 控件。
PictureBox 的其它用法 PictureBox 控件有几种方法使 PictureBox 可用于其它目的。例如:把PictureBox 看作是一块空画布,可以在它上面画画或打印,或者显示文本、图形,甚至是简单的动画。 Print 方法允许向 PictureBox 控件输出文本,如同向打印机输出一样。有几种字体属性可以控制由 Print 方法输入的文本的特性;Cls 方法可以清除输出。 Circle、Line、Point 和 Pset 方法可以用于在 PictureBox 中画图形。一些属性如 DrawWidth、FillColor 和 FillStyle 允许自定义图形的外观。 用 PaintPicture 方法在图片控件内移动 Image 、并在几幅不同的 Image 间 快速变化就能产生动画。 详细信息 关于 PictureBox 控件的详细信息,请参阅第七章“使用 VisualBasic 的标准控件”。
轻量图形控件 Image、Shape 和 Line 控件都被认为是轻量图形控件,也就是说,它们只支持 PictureBox 的属性、方法和事件的一个子集。因此,它们需要较少的系统资源而且加载也比 PictureBox 控件更快。
用 Image 控件代替 PictureBox Image 控件与 PictureBox 控件相似,但它只用于显示图片。它不能作为其它控件的容器,也不支持 PictureBox 的高级方法。 图片加载于 Image 控件的方法和它们加载于 PictureBox 中的方法一样。设计时,将 Picture 属性设置为文件名和路径,运行时,利用 Loadpicture 函数。 Image 控件调整大小的行为与 PictureBox 不同。它具有 Stretch 属性,而PictureBox 具有 AutoSize 属性。将 AutoSize 属性设为 True 可使PictureBox 根据图片调整大小,设为 False 则图片将被剪切(只有一部分图片可见)。Stretch 属性设为 False(缺省值)时,Image 控件可根据图片调整大小。将 Stretch 属性设为 True 将根据 Image 控件的大小来调整图 片的大小,这可能使图片变形。 详细信息 关于 Image 控件的详细信息,请参阅第七章“使用 Visual Basic s的标准控件”。
使用 Image 控件创建自己的按钮 Image 控件也可以识别 Click 事件,因此可在要用 CommandButton 的任何地方使用该控件。这种方法可以方便地建立有图片的按钮来取代标题。将几个 Image 控件组成一组,水平置于屏幕顶端(通常在一个 PictureBox中),可以在应用程序中建立一个 ToolBar。 例如,对 Test Buttons一 例给出的 Image 控件 ,用户可以像选择CommandButton 一样来选择它。窗体第一次被显示时,控件显示 VisualBasic 的图标库中三个交通图标中的一个。每单击 Image 控件一次,就显示一个不同的图标(该例的工作版本,请参阅 Controls.vbp 示例应用程序中的 Button.frm)。 如果设计时观察一下窗体,就会发现它实际包含所有三个图标,它们堆集在一起。改变顶部 Image 控件的 Visible 属性为 False,下一幅图像(如果其 Visible 属性为真)将显示于顶部。 图 3.17 为一个交通图标的 Image 控件 (Trffc10a.ico)。 要在 Image 控件的周围建立一个边框,将 BorderStyle 属性设为 1—— 固定的单边框。 注意 与 CommandButton 不同,单击 Image 控件时,并不显示它被按下的动作。也就是说除非在 MouseDown 事件中改变位图,否则“按钮”正在被按下对用户来说是看不到的。 详细信息 关于在 Image 控件中显示图形图像的详细信息,请参阅第七章“使用 Visual Basic 的标准控件”。
使用 Shape 控件和 Line 控件 Shape 和 Line 控件可用来在窗体表面画图形元素。这些控件不支持任何事件,只用于表面装饰。 有几种属性可以控制 Shape 控件的外观。通过设置 Shape 属性,Shape 控件可显示为矩形、正方形、椭圆型、圆角矩形或圆角正方形。设置 BorderColor和 FillColor 属性可以改变颜色,BorderStyle、BorderWidth、FillStyle 和DrawMode 属性控制如何画图。 Line 控件与 Shape 控件相似,但仅用于画线。 详细信息 关于 Shape 和 Line 控件的附加信息,请参阅第七章“使用Visual Basic 的标准控件”。
Images 应用程序 图 3.18 所示窗体用了四个 Image 控件,一个 Shape 控件,一个 PictureBox控件和一个 CommandButton 控件。当用户选择扑克牌符号时,Shape 控件使该符号突出显示,并且在 PictureBox 中显示相应的描述。关于本例的工作版本,请参阅 Controls.vbp 示例应用程序中的 Images .frm。
下表列出了应用程序中对象的属性设置。
|