重拾VB6(9):标准控件的使用详述(下)

来自MSDN-2001-OCT: Visual Tools and Languages/Visual Studio 6.0 Documentation/Visual Basic Documentation/Using Visual Basic/Programmer’s Guide/Part 2: What Can You Do With Visual Basic/Using Visual Basic's Standard Controls

一、使用 Microsoft Hierarchical FlexGrid 控件

(1)Hierarchical FlexGrid 控件不允许用户对它绑定或包含的数据进行编辑。不过,通过将它与文本框结合起来使用,Hierarchical FlexGrid 控件的单元格编辑能力也是可以实现的。

(2)Hierarchical FlexGrid 控件是 Visual Basic 5.0 中使用的 FlexGrid 控件的升级版,但是FlexGrid 控件不能够自动升级到 Hierarchical FlexGrid 控件。

(3)Microsoft Hierarchical FlexGrid Control 6.0

1.1 将数据绑定到 Hierarchical FlexGrid

(1)在开始使用它的功能之前,必须先将数据绑定到 Hierarchical FlexGrid。要将数据绑定到控件,可以使用 Visual Basic 新的 Data Binding Manager,或者通过编程实现。

(2)使用 Visual Basic Data Binding Manager 设置 DataSource:将MSHFlexGrid 控件DataSource 属性设置为包含了希望被绑定到 Hierarchical FlexGrid 的 Command 对象的 DataEnvironment 对象。

DataMember 属性设置为 Data Environment 中的一个 Command 对象。如果希望在 Hierarchical FlexGrid 中查看分层结构的数据,那么必须指定 Command 分层结构中最顶部的父 Command 对象作为 DataMember

(3)以编程方式将数据绑定到 Hierarchical FlexGrid:Set MSHFlexGrid1.DataSource = Rs

(4)右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现 Hierarchical FlexGrid 的“属性页”对话框。将 Hierarchical FlexGrid 和一个分层结构的 Recordset 结合起来可以查看关系类型的信息。在“通用”选项卡中,设置“带区显示”。在“带区”选项卡中,从“带区”框中选择一个带区。这里列出的可用带区是根据 Command 分层结构中的 Recordsets 确定的。对于每一个带区,生成Recordset  的 Command 的名称被显示在括号中。

1.2 带区的格式设置

(1)允许进行格式设置的带区元素包括:列标头、网格线、颜色和缩进。

(2)如果绑定到非分层结构的 Recordset,那么控件中将只有一个带区,而且该带区被称为 Band 0。没有其他带区,因为带区以 Command 分层结构中的 Recordsets 为基础。ADO 分层结构 Recordset 中的每一个 Recordset 都将被创建一个带区。

(3)改变带区的布局:通过改变带区的布局,带区内的字段显示方式将得以改变。在缺省情况下,带区的诸字段将沿水平方向排列,同标准的网格一样。

(4)显示列标头:如果带区以水平方式显示,那么可以为 Hierarchical FlexGrid 设置标头。标头直接显示在带区之上,并且为 Hierarchical FlexGrid 中的每一个带区分别显示一次。如果在 Hierarchical FlexGrid 的顶部和左边只需要为每个带区显示一组标头,请使用固定单元格取代标头。

(5)改变列的顺序:Hierarchical FlexGrid 带区中的各列的顺序是可以改变的。

(6)如果需要改变单个带区的颜色信息,必须使用BackColorBand 属性以编程方式进行改变。

(7)改变全局的颜色和网格线,可以在设计视图下进行。

(8)缩进带区:如果带区以垂直方式显示,那么可以使带区缩进若干列。这样就可以使用户查看带区信息的时候更加清楚。每个带区前面被缩进的列中包含了空白的、未被使用的单元格。因此,用户不能够将焦点移到这些区域中。这些单元格的格式特点是由若干缩进格式定义属性,如 GridLinesIndent,定义的。在Hierarchical FlexGrid 的“属性页”对话框的“带区”选项卡中,选择“带区缩进”并指定带区需要缩进的列数。

(9)使用带区的扩展和收缩功能:扩展和收缩功能有助于方便地查看 Recordset 的组织情况,便于滚动查看 Hierarchical FlexGrid。要在带区中添加扩展与收缩功能,在“带区”选项卡中,选择“可扩充带区”。其次,从“带区”列表中选择要扩展的带区。

1.3 取得结构信息

(1)要取得与带区和字段信息有关的信息,右击 Hierarchical FlexGrid,然后从快捷菜单中选择“检索结构”。在取得了数据的结构之后,信息与 Hierarchical FlexGrid 保存在一起。在取得了结构信息之后,设计时 Hierarchical FlexGrid 中将显示出每个带区和字段更新之后的信息。

注意   如果 DataSource 的结构发生了变化,那么只有重新提取结构才能使这些变化在 Hierarchical FlexGrid 中反映出来。

(2)要清除带区与字段信息,右击 Hierarchical FlexGrid,然后选择从快捷菜单中选择“清除结构”。

1.4 定制 Hierarchical FlexGrid 中的各个区域

(1)Hierarchical FlexGrid 中包含多个可以定制的区域,包括:标准带区固定的标头缩进未填充的

(2)定制标准区域的显示方式:标准区域中包含被绑定到数据的单元格。可设置的属性分别在通用、style、font选项卡上。

(3)定制固定区域的显示方式:可以创建固定显示在 Hierarchical FlexGrid 中的行或者列。为了便于用户阅读,应该使用一个固定的区域来显示一个标头集合,而不是在每个带区中使用重复的列标头。该区域将是静态的,它标识了下面的行或者右边的列。在“通用”选项卡上,指定“固定行”和“固定列”文本框中各自的行数和列数,然后单击“应用”。在“样式”选项卡上,从“固定文本样式”框中为固定文本选择显示风格,然后单击“应用”。

(4)定制标头的显示方式:在“带区”选项卡中,从“文本样式标头”框中选择一种标头样式,然后选择”ColumnHeaders”。注意   为了防止 Hierarchical FlexGrid 显示重复的标头,必须在“通用”选项卡中将 Fixed Row 文本框设置为 0。此外,如果希望在 Hierarchical FlexGrid 的顶部只显示带区的一组标头,那么必须使用固定行,而不是列标头。

1.5 对 Hierarchical FlexGrid 中的数据进行合并与排序

'设置合并。
Fg1 . MergeCol( 0) = True

'排序
Fg1 . Col = 0
Fg1 . ColSel = Fg1 . Cols 1
Fg1 . Sort = 1 '一般为升序。

1.6 使用 Hierarchical FlexGrid 显示一个带有标头的大纲 

fg3 . AddItem "*" + t + "Meals"

……

s = "" + t + "Flint's BBQ" + t + "25-Apr-95" + t + "35.00"
For i = 0 To 5
    fg3 . AddItem s
Next

'在第一列显示折叠/扩充符号图。
If fg3 . TextArray( r * fg3 . Cols) = "*" Then
    fg3 . TextArray( r * fg3 . Cols) = "+"
Else
    fg3 . TextArray( r * fg3 . Cols) = "*"
End If

'在当前标头下扩充项目。
r = r + 1
If fg3 . RowHeight( r) = 0 Then
    Do While fg3 . TextArray( r * fg3 . Cols) = ""
        fg3 . RowHeight( r) = - 1 ' Default row height.
        r = r + 1
        If r >= fg3 . Rows Then Exit Do
    Loop
'在当前标头下折叠项目。
Else
    Do While fg3 . TextArray( r * fg3 . Cols) = ""
        fg3 . RowHeight( r) = 0    '隐藏行。
        r = r + 1
        If r >= fg3 . Rows Then Exit Do
    Loop
End If

 

二、使用 HScrollBar 和 VScrollBar 控件

2.1 滚动条的使用场合

水平、垂直滚动条控件不同于 Windows 中内部的滚动条或 Visual Basic 中那些附加在文本框、列表框、组合框或 MDI 窗体上的滚动条。无论何时,只要应用程序或控件所包含的信息超过当前窗口(或者在 ScrollBars 属性被设置成 True 时的文本框和 MDI 窗体)所能显示的信息,那些滚动条就会自动出现。

目前的 Windows 界面指南则建议用滑块取代滚动条作为输入设备。

滚动条在 Visual Basic 中仍然有价值,因为它为那些不能自动支持滚动的应用程序和控件提供了滚动功能。比如单独一个 PictureBox 控件无法实现滚动功能─ 因为 PictureBox 控件不能自动添加滚动条。

2.2 事件和属性

可用 Scroll 事件访问滚动条被拖动后的数值。在释放滚动框或单击滚动条或滚动箭头时,Change 事件就会发生。

Value 属性(缺省值为 0)是一个整数,它对应于滚动框在滚动条中的位置。

对于单击滚动条的情况可用 LargeChange 属性,对于单击滚动条两端箭头的情况可用 SmallChange 属性。

三、使用 Image 控件

Image 控件用来显示图形。它可显示下面几种格式的图形:位图、图标、图元文件、增强型图元文件、JPEG 或 GIF 文件。除此之外, Image 控件还响应 Click 事件,并可用 Image 控件代替命令按钮或作为工具条的项目,还可用来制作简单动画。

Image 控件使用的系统资源比 PictureBox 控件少而且重新绘图速度快,但它仅支持 PictureBox 控件的一部分属性、事件和方法。两种控件都支持相同的图片格式,但是,在 Image 控件中可以伸展图片的大小使之适合控件的大小。在 PictureBox 控件中不能这样做。

LoadPicture 函数的设置允许您从.ico 或 .cur 文件中选择特定颜色深度和大小的图象。

为了清除 Image 控件中的图形,可使用不指定文件名的 LoadPicture 函数。例如:Image1.Picture = LoadPicture

四、使用 Label 控件

用标签创建访问键:如果要将 Caption 属性中的字符定义成访问键,应将 UseMnemonic 属性设置为 True。为在 Label 控件中显示连字符,应将 UseMnemonic 属性设置为 False。

标签不接受焦点,因此焦点会按照 tab 键次序自动移动到下一控件处。可用这种技术为文本框、图片框、组合框、列表框、驱动器列表框、目录列表框、网格和图象指定访问键。

五、使用 Line 控件

在运行时,可更改直线控件的 X1、X2、Y1 和 Y2 属性来移动控件或调整直线控件的大小。不能用 Move 方法移动直线。

六、使用 ListBox 控件

(1)为了向列表框中添加项目,应使用 AddItem 方法,其语法如下:box.AddItem item[, index]

(2)为了在指定位置添加项目,应对新项目指定索引值。

(3)通过设置 ListBox 控件“属性”窗口的 List 属性还可在设计时向列表添加项目。在选定了 List 属性选项并单击向下箭头时,可输入列表项目并按 CTRL+ENTER 组合键换行。只能在列表末端添加项目。所以,如果要将列表按字母顺序排序,则应将 Sorted 属性设置成 True。

(4)可用 RemoveItem 方法从列表框中删除项目。

(5)获取当前选定项目值的最简单方法是使用 Text 属性。

(6)可用 List 属性访问列表的全部项目。

(7)如果要了解列表中已选定项目的位置,则用 ListIndex 属性。

(8)为了返回列表框中项目的数目,应使用 ListCount 属性。

(9)可用 Columns 属性指定列表框中的列数目。该属性如果取值为1,则显示水平滚动的单列列表框;若大于1,则水平滚动的多列列表框。

(10)用户可从列表中选择多个项目。设置 MultiSelect 属性来处理标准列表框中的多项选择。

 

七、使用 PictureBox控件

(1)要使 PictureBox 控件自动调整大小以显示完整图形,应将其 AutoSize 属性设置为 True。这样控件将自动调整大小以适应加载的图形。

与 Image 控件不同, PictureBox 控件不能伸展图象以适应控件尺寸。

(2)图片框象窗体一样,可用来显示图象方法(例如 Circle、Line 和 Point)的输出。

Picture1.AutoRedraw = True

Picture1.Circle (1200, 1000), 750

(3)将 AutoRedraw 属性设置为 True 并使用 Print 方法就可在 PictureBox 控件上输出文本。例如:Picture1.Print "A text string"

使用 Print 方法时可修改字体样式和大小,也可使用 CurrentX、CurrentY、Height 和 Width 属性对齐图片框中的文本

八、使用 TextBox 控件

缺省时,文本框中输入的字符最多为 2048 个。若将控件的 MultiLine 属性设置为 True,则可输入多达 32K 的文本。

Visual Basic 提供 PasswordChar 和 MaxLength 这两个文本框属性,大大简化了密码文本框的创建。

取消文本框中的击键值:在KeyPress 事件中KeyAscii = 0

对于字符串中要显示的一对引号,必须再插入一对附加的引号。Visual Basic 将并列的两对引号解释为嵌入的引号。Text1.Text = "She said, ""You deserve a treat!"" "。可用引号的 ASCII 字符 (34) 达到相同效果:Text1.Text = "She said, " & Chr(34) + "You deserve a treat!" & Chr(34)

 

九、使用 Timer 控件

每个 Timer 控件都有 Interval 属性,指定定时器事件之间的毫秒数。除非禁止此属性,否则定时器在大致相等的时间间隔不断接受事件(称作定时器事件会更贴切)。

间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。系统每秒生成 18 个时钟信号─ 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。因为存在某些内部的错误可能性,所以应将间隔设置为精确度的一半。

运行时,定时器不可见,所以其位置和大小无关紧要。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值