和饥荒类似的游戏:VB- Hierarchical FlexGrid 控件

来源:百度文库 编辑:中财网 时间:2024/04/27 07:50:03
 访问 Hierarchical FlexGrid 控件
    要在 Visual Basic 中安装并访问 Hierarchical FlexGrid 控件,请使用以下步骤。
    要安装和访问 Hierarchical FlexGrid 控件
    1. 在“工程”菜单中,选择“部件”。出现“部件”对话框。
    2. 在“控件”选项卡中,选择“Microsoft Hierarchical FlexGrid Control 6.0”,然后单击“确定”。MSHFlexGrid 控件被添加到 Visual Basic 工具箱中。
    3. 在 Visual Basic 工具箱中,单击 MSHFlexGrid 控件,然后将其拖到一个 Visual Basic 窗体上。
     -或者-
     在 Visual Basic 工具箱上,双击 MSHFlexGrid 控件,将其添加到窗体上。

    将数据绑定到 Hierarchical FlexGrid
    在开始使用它的功能之前,必须先将数据绑定到 Hierarchical FlexGrid。要将数据绑定到控件,可以使用 Visual Basic 新的 Data Binding Manager,或者通过编程实现。
    在将 Hierarchical FlexGrid 绑定到数据源之后,Hierarchical FlexGrid 在设计时屏幕显示是一个空白列和一个空白行。字段和带区信息不是自动提取的(要获得此类信息,请参阅取得结构信息)。如果 Hierarchical FlexGrid 在没有字段和带区信息的情况下运行,那么在显示数据的时候将使用缺省的属性设置。就是说,如果 Hierarchical FlexGrid 被绑定到一个分层结构的Command,那么显示出的数据带区将是水平排列的,每个带区中包含一列,分别对应于 Recordset 中的每一个字段。
    绑定到数据源的 Hierarchical FlexGrid

    使用 Visual Basic Data Binding Manager 将数据绑定到Hierarchical FlexGrid
    本节说明如何使用 Visual Basic Data Binding Manager 将数据绑定到Hierarchical FlexGrid。Data Binding Manager 提供了一种便于进行数据绑定的用户界面。
    使用 Visual Basic Data Binding Manager 设置 DataSource
    1. 为 Hierarchical FlexGrid 创建数据源。数据源可以是 DataEnvironment 对象或者 ActiveXData Control,或者是一种新的 Visual Basic 功能。在本例中,将数据源创建为 DataEnvironment 对象。
    2. 在 Visual Basic 工具箱上,单击 MSHFlexGrid 控件,然后将其拖到一个 Visual Basic 窗体上。
      -或者-
      在 Visual Basic 工具箱上,双击 MSHFlexGrid 控件将其拖到一个 VisualBasic 窗体上。
    3. 在 Visual Basic “属性”窗口中,将 DataSource 属性设置为包含了希望被绑定到 Hierarchical FlexGrid 的 Command 对象的 DataEnvironment对象。
    警告 如果 DataSource 被重新设置,Hierarchical FlexGrid 单元格中的所有用户定义的、修改过的数据都将被丢失。4. 在 Visual Basic “属性”窗口中,将 DataMember 属性设置为 DataEnvironment 中的一个 Command 对象。如果希望在 HierarchicalFlexGrid 中查看分层结构的数据,那么必须指定 Command 分层结构中最顶部的父 Command 对象作为 DataMember。
    5. 要查看 Hierarchical FlexGrid 中的数据,请在“运行”菜单中选择“开始”。
     -或者-
     按下 F5 键。

    以编程方式将数据绑定到 Hierarchical FlexGrid
    本节描述如何以编程方式将数据绑定到 Hierarchical FlexGrid。要以编程方式设置 DataSource
    1. 在 Visual Basic 工具箱中,双击 MSHFlexGrid 控件,将其放在一个Visual Basic 窗体上。
    2. 右击该 Hierarchical FlexGrid,然后从快捷菜单中选择“查看代码”。出现“代码编辑器”窗口。
    3. 在 Form_Load 事件中,添加代码来创建一个 ADO Recordset 并将其赋予 Hierarchical FlexGrid。该代码将在下面的分步骤中提供。
    注意 要以编程方式设置数据源,工程中必须要有指向 MicrosoftActiveX Data Objects 的引用:在“工程”菜单中,选择“引用”,然后选择“Microsoft ActiveX Data Objects 2.0 Library”。
    插入下列代码,创建一个 ADO Connection 和 Recordset,请根据实际情况替换其中的注释(例如,将 替换为数据源的实际名称):
    DIM Cn As New Connection, Rs As New Recordset

    ' 你需要将 替换为你的系统
    ' 中的一个有效的 DSN。
    Cn.ConnectionString = "DSN="

    ' 使用下列代码用于 SHAPE Commands
    Cn.Provider = "MSDataShape"
    Cn.CursorLocation = adUseNone

    ' 第二种办法,对于 SQL Commands 可使用下列代码
    Cn.CursorLocation = adUseNone
    Cn.Open
    ' 需要为上面创建的 Connection 的 Recordsets 指定
    ' 有效的数据源

    Rs.Source = ""
    ' 现在将 Command 与 Connection 关联
    ' 起来并执行它们。
    Set Rs.ActiveConnection = Cn
    Rs.Open

    插入下面的代码,将 Rs 中打开的 Recordset 赋予 HierarchicalFlexGrid:
    Set MSHFlexGrid1.DataSource = Rs
    4. 要查看 Hierarchical FlexGrid 中的数据,请在“运行”菜单中选择“开始”。
     -或者-
     按下 F5 键。 Hierarchical FlexGrid 与分层结构的 Recordset
    将 Hierarchical FlexGrid 和一个分层结构的 Recordset 结合起来可以查看关系类型的信息。在将这些信息显示给用户的时候,可以确保原始数据的安全,使之不被用户修改;也可以通过将文本框添加到窗体defForm来增加Hierarchical FlexGrid 的单元格编辑功能。当 Hierarchical FlexGrid 被绑定到分层结构的 Recordsets 上时,可以使用带区来显示分组的和相关的Recordsets。
    注意 在执行本步骤之前,必须先将数据绑定到 Hierarchical FlexGrid。为此,请参阅将数据绑定到分层结构的 FlexGrid。
    要使用带区在 Hierarchical FlexGrid 中显示分层结构的 Recordsets
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“通用”选项卡中,设置“带区显示”。关于每一种带区显示的描述,请参阅带区的格式设置。
    3. 在“带区”选项卡中,从“带区”框中选择一个带区。这里列出的可用带区是根据 Command 分层结构中的Recordsets确定的。对于每一个带区,生成Recordset的Command 的名称被显示在括号中。
    4. 在必要的时候修改每个带区的属性。与此有关的详细信息,请参阅带区的格式设置。
    5. 单击“确定”,将带区属性应用于Hierarchical FlexGrid 并关闭“属性页”对话框。

    带区的格式设置
    在 Hierarchical FlexGrid 中,可以利用带区格式设置功能来指定某个Recordset 的显示选项。ADO 分层结构 Recordset 中的每一个 Recordset 都将被创建一个带区。例如,如果将一个 Hierarchical FlexGrid 绑定到一个包含 Customers 和 Orders 的 ADO 分层结构,那么 Hierarchical FlexGrid 在开始的时候将包含两个带区。 
    通过设置带区的格式,可以定制 Hierarchical FlexGrid 的屏幕外观。这样就可以突出显示多个带区中的重要信息。允许进行格式设置的带区元素包括:列标头、网格线、颜色和缩进。
    如果绑定到非分层结构的 Recordset,那么控件中将只有一个带区,而且该带区被称为 Band 0。没有其他带区,因为带区以 Command 分层结构中的Recordsets 为基础。

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

    垂直显示方式将导致带区在高度方向上进行扩展,以便能够在带区中容纳所有的字段。Hierarchical FlexGrid 中显示的其他带区也将被扩展,确保所有的带区的高度相同。
    垂直方式的带区显示

    要设置带区的布局
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“通用”选项卡中设置“带区显示”。
    3. 单击“确定”,将带区的显示属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。

    显示列标头
    如果带区以水平方式显示,那么可以为 Hierarchical FlexGrid 设置标头。标头直接显示在带区之上,并且为 Hierarchical FlexGrid 中的每一个带区分别显示一次。如果在 Hierarchical FlexGrid 的顶部和左边只需要为每个带区显示一组标头,请使用固定单元格取代标头。关于固定单元格的信息,请参阅“自定义固定外观” (在主题自定义 Hierarchical FlexGrid 区域中)。
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“实现”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“带区”选项卡中,选择“列标头”,然后在”TextStyleHeader”列表框中选择列标头样式。
    3. 单击“确定”,将列标头属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。
    水平的列标头

    改变列的顺序
    Hierarchical FlexGrid 带区中的各列的顺序是可以改变的。
    要改变带区内的列顺序
    1. 选定需要移动的列。
    2. 使用上下箭头键将列移动到带区内的新位置上。

    修改颜色和网格线
    设置带区的颜色和网格线信息的方法有两种:全体方式和个别方式。修改颜色和网格线的目的通常是为了突出地显示 Hierarchical FlexGrid 内的某些重要信息,便于用户阅读数据。另外,还可以指定带区内的单元格之间是否需要显示网格线。使用下面的过程可以修改 Hierarchical FlexGrid 内所有带区的颜色和网格线。
    注意 如果需要改变单个带区的颜色信息,必须使用BackColorBand属性以编程方式进行改变。
    要改变全局的颜色和网格线
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“带区”选项卡中,从“网格线”框中选择一种样式,然后单击“应用”。对于选定的带区,该样式确定了 Hierarchical FlexGrid 中位于标准的填充文本区域之间的线条的类型。
    3. 在“样式”选项卡中,从“固定网格线”中选择一种样式。然后从“非置入网格线”中选择一种样式并单击“应用”。这些样式确定了 HierarchicalFlexGrid 中位于固定的与未填充区域之间的线条的类型。
    4. 在“颜色”选项卡中,为每一种网格线属性指定一种颜色。为此,请首先选择一个“颜色设置”。然后选择要修改的属性(例如 GridColor),从“调色板”中选择一种颜色,最后单击“应用”。对于需要改变的每一条Hierarchical FlexGrid 网格线都需要重复该操作。
    注意 如果使用了 Windows 缺省颜色,那么 Hierarchical FlexGrid 中显示的颜色将是在“显示控制面板”中指定的颜色。除了将Hierarchical FlexGrid 属性的颜色改变为标准的或 Windows 缺省颜色之外,也可以创建自己的颜色定义(单击“编辑自定义颜色”,使用随之弹出的“颜色”对话框)。
    5. 单击“确定”,将网格线和颜色属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。缩进带区
    如果带区以垂直方式显示,那么可以使带区缩进若干列。这样就可以使用户查看带区信息的时候更加清楚。每个带区前面被缩进的列中包含了空白的、未被使用的单元格。因此,用户不能够将焦点移到这些区域中。这些单元格的格式特点是由若干缩进格式定义属性,如 GridLinesIndent定义的。请参阅前面的“改变带区的布局”中的“垂直方式的带区显示”图片。
    要缩进带区
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“带区”选项卡中,选择“带区缩进”并指定带区需要缩进的列数。
    3. 单击“确定”,将带区属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。

    对非分层结构的 Recordset 使用带区功能
    使用 Hierarchical FlexGrid 的“属性页”对话框,也可以设置非分层结构的Recordset 带区的格式。
    非分层结构的 Recordset 中只包含一个带区,即 Band 0。没有其他的带区,因为带区是以 Command 分层结构中的 Recordsets 为基础的。

    使用带区的扩展和收缩功能
    扩展和收缩功能有助于方便地查看 Recordset 的组织情况,便于滚动查看Hierarchical FlexGrid。该功能使用户既能够查看大量的数据,也可以查看压缩形式的信息。如果一个带区是可开展的,那么该带区的左上角会显示出一个缺省的扩展 (+) 或收缩 (-) 位图。无论垂直带区还是水平带区都可以使用扩展和收缩功能。
    当带区处于扩展状态的时候,出现的将是收缩 (-) 位图。在扩展状态下,带区显示出最大数量的数据。当带区处于收缩状态的时候,出现的将是收缩 (+) 位图。在扩展状态下,带区显示出最少量的数据。
     在收缩状态下,带区中可能显示未被填充数据的区域。对未填充区域的格式也有专门的规定。
    收缩状态的带区

    当一个带区处于收缩状态时,它的任何一个记录都不会显示出来,该带区中的列也不会显示出来。当用户将带区展开时,这些列将显示出来。展开状态的带区具有统一的高度。在必要的情况下,较小的带区将被扩大以便与较大带区保持一致的高度。
    扩展状态的带区

    带区的扩展和收缩
    本节说明如何为 Hierarchical FlexGrid 中的带区添加扩展和收缩功能。它还说明如何使用扩展和收缩功能。
要在带区中添加扩展与收缩功能
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“带区”选项卡中,选择“可扩充带区”。其次,从“带区”列表中选择要扩展的带区。
    注意 要使一个带区成为可扩展的,它至少要有一个子带区。因此,如果只有 Band 0,那么“可扩充带区”复选框将是不可使用的。
    3. 单击“确定”,将带区属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。
    要使用扩展和收缩功能
    1. 在通过“属性页”对话框将带区功能添加到 Hierarchical FlexGrid 之后,请从“运行”菜单中选择“启动”。-或者-按下 F5 键。
    2. 单击带区左上角的扩展 (+) 图形,查看最大化的(扩展的) Recordset 信息。
    3. 单击带区左上角的收缩 (-) 图形,查看最小化的(收缩的) Recordset 信息。
    注意 如果被扩展的带区中包含一个被收缩的子带区,那么在将子带区展开之前它将保持收缩状态。

    获取结构信息
    Hierarchical FlexGrid 的结构信息中包含了与带区和列的设置有关的详细信息。在缺省设置的情况下,每个带区中的列顺序与对应的 ADO Recordset 中的顺序相同。在获取该信息之后,可以使用它们来控制数据如何显示在Hierarchical FlexGrid 中。
要获取与带区和字段信息有关的信息
    右击 Hierarchical FlexGrid,然后从快捷菜单中选择“检索结构”。
    -或者-
    访问 Hierarchical FlexGrid 的“属性页”对话框并选择“带区”选项卡。该选项卡中包含了 Hierarchical FlexGrid 的结构信息。
    在获取了数据的结构之后,信息与 Hierarchical FlexGrid 保存在一起。在获取了结构信息之后,设计时Hierarchical FlexGrid 中将显示出每个带区和字段更新之后的信息。
    注意 如果 DataSource 的结构发生了变化,那么只有重新提取结构才能使这些变化在 Hierarchical FlexGrid 中反映出来。

    清除带区与列信息
    如果清除了带区与列信息,它们将恢复为缺省的设置。
    要清除带区与字段信息
    右击 Hierarchical FlexGrid,然后选择从快捷菜单中选择“清除结构”。
    注意 如果对 Hierarchical FlexGrid 的带区或列属性进行了修改,将会出现一条警告信息。这时,可以单击“确定”,将 Hierarchical FlexGrid 重新设置为缺省状态,取消所有的用户定义设置值。

    定制 Hierarchical FlexGrid 中的各个区域
    Hierarchical FlexGrid 中包含多个可以定制的区域。要定制这些区域,可以使用 Hierarchical FlexGrid 的“属性页”对话框,也可以使用“代码编辑器”窗口,以编程方式实现。对这些区域的定制将有助于提高 HierarchicalFlexGrid 界面的易读性和实用性。
    这些 Hierarchical FlexGrid 区域包括:
    1.标准
      Hierarchical FlexGrid 的标准区域是那些包含数据绑定信息的单元格。
    2.带区
      带区区域包含了 Hierarchical FlexGrid 中每个 Recordset 的显示信息。与此有关的详细说明,请参阅带区的格式设置。    3.固定的
      固定区域中包含固定的或者静态的行与列。
    4.标头
      列标头区域确定与被绑定到 Hierarchical FlexGrid 的 Recordset 有关的信息。在使用时,Hierarchical FlexGrid 中的每个带区都将重复这些列标头。与此有关的详细信息,请参阅带区的格式设置。
    5.缩进
      在以垂直方式显示带区时,Hierarchical FlexGrid 的缩进区域就是将一个数据带区缩进若干列的区域。每个带区前面的缩进列中包含空白的、未使用的单元格。与此有关的详细说明,请参阅带区的格式设置。
    6.未填充的
      Hierarchical FlexGrid 的未填充区域包括 Hierarchical FlexGrid 工作区域的右边和下边的单元格。该区域是空白的,包含未被使用的单元格。 定制标准区域的显示方式
    Hierarchical FlexGrid 标准区域的显示方式是可以定制的,这样提供给用户的信息将更加清晰、便于访问。标准区域中包含被绑定到数据的单元格。
    要定制 Hierarchical FlexGrid 标准区域的显示方式
    1. 单击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“通用”选项卡上,设置下列标准属性:

    3. 在 Style 选项卡上,设置下列标准属性:
  
    4. 在 Font 选项卡上,设置下列标准属性:

    5. 单击“确定”,将标准属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。

    定制固定区域的显示方式
    可以创建固定显示在 Hierarchical FlexGrid 中的行或者列。为了便于用户阅读,应该使用一个固定的区域来显示一个标头集合,而不是在每个带区中使用重复的列标头。该区域将是静态的,它标识了下面的行或者右边的列。
    要定制 Hierarchical FlexGrid 的固定区域的显示方式
    1. 单击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“通用”选项卡上,指定“固定行”和“固定列”文本框中各自的行数和列数,然后单击“应用”。
    3. 在“样式”选项卡上,从“固定文本样式”框中为固定文本选择显示风格,然后单击“应用”。
    4. 在“字体”选项卡中,设置下列标准属性:

    5. 从“颜色”选项卡中,为每一个固定属性指定一个颜色。为此,首先需要选择一个“颜色设置”。然后,单击需要改变的属性(例如BackColorFixed),单击“调色板”中的一种颜色,最后单击“应用”。对需要改变的每一个固定区域重复上述操作。
    注意 如果使用了“Windows 缺省”颜色,那么 Hierarchical FlexGrid 中显示的颜色将是在“显示控制面板”中指定的颜色。除了将 HierarchicalFlexGrid 属性的颜色改变为标准的或 Windows 缺省颜色之外,也可以创建自己的颜色定义(单击“Edit Custom Color”,使用随之弹出的“颜色”对话框。)关于每个属性的有关信息,请参阅 HierarchicalFlexGrid 的属性主题。
    6. 单击“确定”,将固定属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。

    定制标头的显示方式
    在 Hierarchical FlexGrid 中,可以改变带区标头的格式和显示属性。
    要定制 Hierarchical FlexGrid 的标头显示方式
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“带区”选项卡中,从“文本样式标头”框中选择一种标头样式,然后选择“ColumnHeaders”。
    注意 为了防止 Hierarchical FlexGrid 显示重复的标头,必须在“通用”选项卡中将 Fixed Row 文本框设置为 0。此外,如果希望在 HierarchicalFlexGrid 的顶部只显示带区的一组标头,那么必须使用固定行,而不是列标头。
    3. 在“列标题”和“列名称”列表框中,指定需要显示的各列。在缺省的情况下,该列表中包含了 Recordset 的所有字段以及它们的字段名。如果需要停止显示某个 Field 对象,或者希望改变其名称,请使用“列标题”列表。如果需要取消某个字段,请单击对应的选择符号。如果希望改变字段的名称,请单击名称将其选定,然后再次单击它,进入编辑模式进行重命名。
    4. 单击“确定”,将带区属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。

    定制未填充数据的区域
    在 Hierarchical FlexGrid 中,可以改变带未填充数据区域的格式和显示属性。这种未填充区域是空白的,不包含任何数据。
    要定制 Hierarchical FlexGrid 的未填充数据区域的显示方式
    1. 右击 Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。显示出Hierarchical FlexGrid 的“属性页”对话框。
    2. 在“样式”选项卡上,改变“非置入网格线”属性。
    3. 在“颜色”选项卡上,为每一个固定属性指定一个颜色。为此,首先需要选择一个“颜色设置”。然后,单击需要改变的属性(例如BackColorUnpopulated),单击“调色板”中的一种颜色,最后单击“应用”。对需要改变的每一个未填充区域重复上述操作。    注意 如果使用了“Windows 缺省”颜色,那么 Hierarchical FlexGrid 中显示的颜色将是在“显示控制面板”中指定的颜色。除了将 HierarchicalFlexGrid 属性的颜色改变为标准的或 Windows 缺省颜色之外,也可以创建自己的颜色定义(单击“Edit Custom Color”,使用随之弹出的“颜色”对话框)。
    4. 单击“确定”,将固定属性应用于 Hierarchical FlexGrid 并关闭“属性页”对话框。