VB控件教程大全

上传人:小** 文档编号:26963201 上传时间:2021-08-15 格式:DOC 页数:49 大小:937.50KB
返回 下载 相关 举报
VB控件教程大全_第1页
第1页 / 共49页
VB控件教程大全_第2页
第2页 / 共49页
VB控件教程大全_第3页
第3页 / 共49页
点击查看更多>>
资源描述
明概要地说明了在实现DataGrid 控件的典型应用时的一般步骤。完整的循序渐进的指示,请参阅主题VB控件教程大全Datagrid 控件DataGridl.Columns.Remove(O)删除 0 号字段DataGridl.Columns.Add(0).Caption=姓名”标签头DataGrodl.Columns(0).DataField=” Name应的字段AdodcI.Refresh设定DataGrid格式的有用的属性:BackColor 设定背景颜色。Font 设定DataGrid的字体信息。字体信息包括使用何种字体、字号,是否粗体,斜体等。CellPadding 设定HTML表格中单元格内的边距。CellSpacing 设定HTML表格中单元格之间的间距。Width 设定HTML表格的宽度(可以以像素、百分比等为单位)Horizo ntalAlig n 设定表格在页面上的对齐方式(左对齐、右对齐、居中、未设定)一个使用上述属性而使得表格变得漂亮的例子如下所示。请注意DataGrid的Font属性是一个对象,它指向了 Fontinfo类,Fontinfo类包括Size, Name, Bold, Italic等属性。为了设定 Font对象所指向类的属性,必须通过连字符(-)完成。这类似于 VB.Net和C#语言中表示对象属性的点(.)。1、使用DataGrid 控件DataGrid控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示Recordset对象的记录和字段。可以使用DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid控件的DataSource属性后,就会用数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就 可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。在运行时,可以在程序中切换 DataSource来察看不同的表,或者可以修改当前数据库的查询,以返回一个不同的记录集合。注意DataGrid 控件与Visual Basic 5.0中的DBGrid 是代码兼容的,除了一个例外:DataGrid控件不支持DBGrid 的 解除绑定模式”概念。DBGrid控件包括在 Visual Basic的Tools目录中。2、可能的用法查看和编辑在远程或本地数据库中的数据。与另一个数据绑定的控件(诸如DataList控件)联合使用,使用DataGrid控件来显示一个表的记录,这个表通过一个公共字段链接到由第二个数据绑定控件所显示的表。使用DataGrid控件的设计时特性可以不编写任何代码,只通过使用DataGrid控件的设计时特性来创建一个数据库应用程序。下面的说“DataGrid方案1:使用DataGrid控件创建一个简单数据库应用程序”要在设计时实现一个DataGrid控件1. 为要访问的数据库创建一个Microsoft数据链接(.MDL) 文件。请参阅 创建Northwind OLE DB数据链接”主题,以获得一个示例。2. 在窗体上放置一个ADO Data 控件,并将其 Co nn ectio nStri ng 属性设置为在第 1步中所创建的OLE DB数据源。3. 在这个Ado Data控件的RecordSource属性中输入一条将返回一个记 录集的 SQL 语句。例如,Select * From MyTableName Where CustID = 124. 在窗体上放置一个 DataGrid 控件,并将其 DataSource属性设置为这个 ADO Data控件。5. 右键单击该DataGrid控件,然后单击 检索字段”。6. 右键单击该DataGrid控件,然后单击 编辑”7. 重新设置该网格的大小、删除或添加网格的列。8. 右键单击该DataGrid控件,然后单击 属性”9. 使用属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。在运行时更改显示的数据在创建了一个使用设计时特性的网格后,也可以在运行时动态地更改该网格的数据源。下面介绍实现 这一功能的通常方法。3、更改 DataSource 的 RecordSource更改所显示的数据的最通常方法是改变该DataSource的查询。例如,如果DataGrid控件使用一个ADOData控件作为其 DataSource,则重写RecordSource和刷新该ADO Data控件都将改变所显示的数据。ADO Data控件连接的是 Northwind 数据库的” Products表。新查询查找所有” SupplierlD = 12 的记录。Dim strQuery As StringstrQuery = SELECT * FROM Suppliers WHERE SupplierlD = 12Adodc1.RecordSource = strQueryAdodc1.Refresh4、更改 DataSource在运行时,可以将DataSource属性重新设置为一个不同的数据源。 例如,您可能具有若干个 ADO Data 控件,每个控件连接不同的数据库,或设置为不同的RecordSource属性。可以简单地将 DataSource从一个ADO Data控件重新设置为另一个 ADO Data控件:”将DataSource重新设置为一个连接到Pubs数据库的、”使用Authors 表的ADO Data控件。注意上面的CellText方法等价于使用DataGrid控件的Text属性。5、重新绑定DataSource当将DataGrid控件用于一个远程数据库,诸如SQLServer时,可以改变表的结构。例如,可以给这个表添加一个字段。在这种情形下,可以调用Rebind方法根据新的结构来重新创建该网格。注意,如果已经在设计时改变了这个列的布局,DataGrid控件将会试图重新创建当前的布局,包括任何空的列。不过,通过首先调用ClearFields方法,可以强制该网格重新设置所有的列。从DataGrid返回值在DataGrid被连接到一个数据库后,可能想要监视用户单击了哪一个单元。可以使用RowColChange事件而不是Click事件。如下所示:Private Sub DataGrid1_RowColCha nge(LastRow As Varia nt, ByVal LastCol As In teger)“显示用户所单击的单元的文字、行和列的信息。Debug.Pri nt DataGrid1.Text; DataGrid1.Row; DataGrid1.ColEnd Sub6、使用 CellText 和 CellValue 方法当一个列使用NumberFormat属性设置格式后,CellText和CellValue属性是很有用的。NumberFormat 属性不必更改实际的数据格式就可以更改任何包含数字的列的格式。例如,给定一个网格,其中包含一个 名为ProductID的、包含整数的列。下面的代码将使DataGrid以P-0000的格式来显示数据。换句话说,尽管在ProductID字段中所包含的实际数值为3,但该网格所显示的值将是P-0003。Private Sub Form_Load()DataGrid1.Colu mn s(ProductlD).NumberFormat = P-0000End Sub要返回数据库中所包含的实际值,应使用CellValue方法,如下所示:Private Sub DataGrid1_RowColCha nge(LastRow As Varia nt, ByVal LastCol As In teger)Debug.Pri nt _DataGrid1.Colu mn s(ProductlD).CellValue(DataGrid1.Bookmark)End Sub注意上面所用的CellValue和下面所用的CellText值,都需要将Bookmark属性作为一个参数,功能才正确。相反地,如果要返回该字段的格式化的值,应使用CellText方法:Private Sub DataGrid1_RowColCha nge(LastRow As Varia nt, ByVal LastCol As In teger)Debug.Pri nt _DataGrid1.Colu mn s(ProductlD).CellText(DataGrid1.Bookmark)End Sub添加、删除或隐藏列通过使用Columns集合和Column对象的属性和方法,可以在程序中添加、删除或隐藏列。添加和删除一列要在运行时添加一列,可以使用Add方法。如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性。Private Sub AddColum n()在最右边的位置添加一列。然后设置其Visible 、Width、Caption 以及Alignment 属性。DataField 属性则指定该列将绑定到哪一个字段。Dim c As Colu mnSet c = DataGrid1.Colu mn s.Add(DataGrid1.Colum ns.Cou nt)With c.Visible = True.Width = 1000.Caption = 我的新列.DataField = Adodc1.Recordset.Fields(ProductName).Name.Alig nment = dbgRightEnd WithEnd Sub可以使用方法来删除任意一列。请确保使用ColIndex参数来指定要删除的列。下面的代码将 删除被单击的列。Private Sub DataGrid1_HeadClick(ByVal ColI ndex As In teger)DataGrid1.Colum ns.Remove ColI ndexEnd Sub隐藏一列通过将Visible属性设置为False,可以隐藏任意一列。当想要限制用户可以查看或编辑的列时这一功能特别有用。下面的示例在Columns集合中循环,隐藏除少数列之外的所有列。Private Sub HideColu mn s()使用DataField 属性来判别正在测试的是哪一列。只显示三列:ProductName UnitPrice以及Un itsl nStock 。Dim c As Colu mnFor Each c In DataGrid1.Colu mnsSelect Case c.DataFieldCase ProductNamec.Visible = TrueCase UnitPricec.Visible = TrueCase Un itsI nStockc.Visible = Truec.Caption = In Stock更改这个列的标头。Case Else隐藏其它所有的列。c.Visible = FalseEnd SelectNext cEnd Sub操作DataGrid视图一个“拆分”的网格使最终用户对相同的数据可以拥有多个视图。例如,假设有一个由十个字段组成的大表。在这种情况下,在控件中察看的记录集将有十列宽,除非窗体非常宽,否则用户将 无法同时看见所有列的内容。,而且,假设用户只对第一列和最后一列感兴趣(例如,第一列是名 字,最后一列是电话号码)。为了能同时看到在两端的列(不重新安排列的顺序),可以对网格进 行拆分。创建一个Split 对象在设计时,可以创建一个拆分,具体步骤是:右键单击网格,单击“编辑”,再单击右键,然后单击“拆分”。通过右键单击该控件, 并单击“属性”来显示“属性页”对话框,可以编辑这个拆分。可以使用“拆分”选项卡来自定义拆分。 要删除一个拆分,右键单击该拆分,并单击“删除”。在运行时,最终用户也可以通过单击位于这个网格控件的左下边的右边的选项卡,以手工方式来拆分该网格(除非不允许这个操作),如下图所示:10254默认情况下,DataGrid控件包含一个Split 对象。防止最终用户添加拆分的代码为:DataGrid1.Splits(0) .AllowSiz ing = False在程序中添加和删除拆分DataGrid控件包含一个Split 对象的集合。要在程序中添加拆分,可以使用Add方法,如下所示:DataGrid1.Splits.Add 1注意Add方法需要新的拆分索引作为其参数。要添加一个拆分,应将这个索引参数设置为Splits 集合的Count属性值。使用Split 集合的Add方法,可以在程序中按照实际需要添加拆分。由于添加多于两个以上的拆分将使网格很难使用,可以使用该集合的Count属性来限制拆分的数目。DataGrid1.Splits.Add DataGrid1.Splits.CountEnd If使拆分同步当拆分多于一个时,可能希望控制这些拆分如何滚动。例如,在一个具有三个拆分的网格中, 可以决定只让第一个和第三个拆分同步,而让中间的拆分独立地滚动。要同步任何两个(或多个) 拆分,只需将每个Split 对象的ScrollGroup 属性设置为同一个值。使第一个和第三个Split 对象同步。With DataGrid1.Splits(O).ScrollGroup = 1.Splits(1).ScrollGroup = 2.Splits(2).ScrollGroup = 1End With通过设置Scrollbars 属性,使同步的拆分组只显示一个滚卷条,从而进一步自定义拆分的外观。控制Tab键和箭头键的行为使用WrapCellPointer、TabAcrossSplits 以及TabAction 属性,可以决定当最终用户按下 tab键或箭头键时网格的行为。在这三个属性中,TabAction属性级别最高,它决定 WrapCellPointer 和 TabAcrossSplits 这两个属性是否能生效。TabAction有三个设置值:ControlNavigation、Column Navigation 和Grid Navigatio n 。当该属性设置为 Co ntrolNavigati on 时,按Tab键根据Tab In dex 将焦点切 换到下一个控件。这一设置优先于 WrapCellPoi nter 和TabAcrossSplits 。WrapCellPointer属性决定在任何单个的拆分中tab键和箭头键的行为。如果该属性设置为 True,且当前单元位于最后一列,这时最终用户按tab键则使第一列的下一行变成当前的单元。不过,如果当前单元位于最后一行的最后一列时,这时就没有地方可以“换行”。TabAcrossSplits 属性决定当网格中存在两个或多个拆分时 tab和箭头键的行为。如果该属 性设置为True,且当前单元位于任何一个拆分的最后一列, 则按Tab或箭头键将使当前单元“跳” 到下一个拆分的第一列。当前单元仍保持相同的行位置。注意如果WrapCellPointer和TabAcrossSplits属性都设置为True, 则只有当前单元位于最后一个拆分的最后一列时才会换行。这时当前单元将换到第一个拆分的第一列中的下一行。自定义列集合每一个Split 对象都有一个Columns属性,允许用户来操作一个 Column 对象的集合。通过 这样做,可以更改每个Split 对象的外观。例如,可以用一个拆分包含显示姓氏字段和名字字段 的两个列,而第二个拆分则显示电话字段和地址字段。要实现这一目标,需要将其它的每一列的Visible 属性设置为False,如下所示:枚举Columns集合,对每一个 Column对象的DataField 属性进行测试。如果测试失败,贝I隐藏这一列Dim i As In teger隐藏除ProductName列之外的所有列。For i = 0 To DataGrid1.Splits(0).Columns.Count - 1If DataGrid1.Splits(0).Columns(i).DataField ProductName ThenDataGrid1.Splits(0).Colum ns(i).Visible = FalseEnd IfNext i隐藏除UnitPrice 列之外的所有列。For i = 0 To DataGrid1.Splits(0).Colum ns.Cou nt - 1If DataGrid1.Splits(1).Columns(i).DataField UnitPrice ThenDataGrid1.Splits(1).Colu mn s(i).Visible = FalseEnd IfNext I使用Bookmarks和SelBookmarks跟踪记录Bookmarks和SelBookmarks提供了标记记录的一种手段。当编写应用程序中的特定功能(诸如允许最终用户手工地选择多个不相邻的记录,进行所选记录的大批更新)时,这就很有必要。在这些情形中,需要标记哪些记录已被选择,因此可以使用 SelBookmarks集合及其属性。有两个函数,分别是CellText和CellValue 方法,需要标记才能正确执行。标记用户的选择SelBookmarks集合包含所有选定的记录的书签。当最终用户手工选择记录时(即在单击时按 住CTRL键),每一个选定的记录的书签都会加入到该集合中。使用标准的循环,用户可以知道已 经选定了什么,也可以保存书签(因为可能需要恢复某个值),以及执行操作:Dim i as In teger 计数器Dim in tCo unt As In tegerin tCou nt = DataGrid1.SelBookmarks.Cou nt - 1ReDim arrSelBK(i ntCou nt)声明用于保存书签的数组。For i = 0 To i ntCou ntArrSelBK(i) = DataGrid1.SelBookmarks(i)在此处执行操作。如果该操作必须被取消,则退出该循环,然后使用该数组来取消这些更改。Next i通过在程序中添加至U SelBookmarks集合来选择记录通过将记录添加到这个集合,也可以在程序中选定记录。 例如,可能有一个显示指定的客户所有订货的网格。如果要高亮显示该客户花费超过$100的所有记录,则对记录进行过滤,并将结果 书签添加到SelBookmarks集合。Dim rs As RecordsetSet rs = AdodcI.RecordsetWhile Not rs.EOFIf rs!SupplierlD = 12 The nDataGrid1.SelBookmarks Add rs.BookmarkEnd Ifrs.MoveNextWend显示计算结果字段假设在表中有一个名为Price的字段,并且想使用本地税率来计算表中每一项的税费。这就是一个计算结果字段,可以通过修改DataSource的查询来计算这个值,并把这个值返回给DataGrid 控件。要在DataGrid控件中创建一个计算结果字段1. 确认在机器上已为Northwind数据库建立了一个OLEDB数据源;如果还没有创建这样的一个数据源,请按照“创建 Northwi nd的 OLE DBData连接”的步骤操作。2. 在窗体上放置一个ADO Data控件和一个DataGrid控件。3. 将ADO Data控件的 ConnectionString 属性设置为Northwind 的数据源。4. 设置ADO Data控件的RecordSource属性。在“属性窗口中,单击记录源并输入Select ProductName, Uni tPrice,(U nitPrice * .082) As Tax From Products。5. 将DataGrid 控件的DataSource 属性设置为这个 ADO Data控件。6. 运行该工程。与类模块一起使用DataGrid控件如果想要访问以自定义格式或以 ODBC驱动程序不直接支持的格式存放的数据,可以创建一个类来封装该数据。然后可以编写该类的自定义函数来检索这些数据。这样该类就变成了一种数据源,可以被任何数据使用者(如 DataGrid控件)使用。在这个类模块的Initialize事件中,首先通过声明一个作为New ADODB.Recordset的变量,来创建一个ADODBrecordset对象。在创建了这个recordset 对象后,再添加字段,每个数据源 中的每个字段都要加入。然后使用合适的数据填充这个记录集。注意也可以使用OLEDB示例提供者来创建一个数据源。关于OLEDB示例提供者的详细信息,请参阅“创建带有数据提供方的部件”。类模块有一个GetDataMember事件,只要当数据使用者(诸如 DataGrid控件)需要数据时 就产生该事件。在这个事件中,Data参数被设置为在Initialize事件中所创建的recordset 对象。如果要使用这个类模块,应创建一个具有一个DataGrid控件的窗体。在该窗体的Load事件 的代码中,将该控件的DataSource属性设置为这个类。注意 数据类模块在设计时是不可用的。例如,如果使用DataGrid控件,则当用户在“属性”窗口中单击“数据源”时,所有可用的数据源都会出现在一个下拉列表中。但其中不会有这个数据类模块,它只能在代码中设置。使用类模块创建一个数据源下面的示例使用一个类模块来创建一个简单数据源。然后通过DataSource 属性将DataGrid控件绑定到该模块。要创建一个用于DataGrid的类1. 创建一个新的标准Exe工程。2. 给窗体添加一个DataGrid控件。如果DataGrid控件不在“工具箱”中,则在“工程”菜单中单击“部件”,再单击“ Microsoft DataGrid Control,然后单击确定。3. 在“工程”菜单中,单击“引用”。在“引用”对话框中,单击“ MicrosoftActiveX Data Objects 2.0 Library ”。4. 在“工程”菜单中,单击“添加类模块”来给工程添加一个数据类模块。5. 在“工程资源管理器”窗口中,单击并选定“类”图标,并按F4键显示“属性”窗口。6. 在“属性”窗口中,将类的名称更改为NamesData7. 在“属性窗口中,单击“ DataSourceBehavior 并将该属性更改为vbDataSource。8. 在该类模块的Declarations部分,创建一个 ADODB Recordset 变量,如下所示:Opti on ExplicitPrivate WithEve nts rsNames As ADODB.RecordSet使用WithEvents关键词来声明该变量,使用户可以对RecordSet对象的事件编程。9. 在该类的Initialize事件中,添加下述代码:Private Sub Class_I nitialize()将新的数据成员的名称添加到 DataMember集合这使其它对象可以看见这些可用的DataMembersDataMembers Add NamesSet rsNames = New ADODB.RecordSet设置对象变量。创建一个具有两个字段的 recordset,并打开该recordset。第一个记录具有一个整数的数据类型,第二个记录是一个最大可达256个字符的字符串。CursorType被设置为OpenStatic一个可更新的对一组记录的快照。LockType被设置为LockOptimistic,以允许对该recordset 进行更新。With rsNames.Fields.Append ID, adInteger.Fields.Append Name, adBSTR, 255.CursorType = adOpe nStatic.LockType = adLockOptimistic.Ope nEnd WithDim i As In tegerFor i = 1 to 10添加十条记录。rsNames.AddNewrsNames!ID = irsNames!Name = Name & irsNames.UpdateNext i rsNames.MoveFirst 移到该记录集的开始。End Sub这部分代码首先创建recordset 对象,然后给该对象添加两个字段。代码接着给recordset添加十条记录。10. 在该类的GetDataMember事件中,添加下述代码 :Private Sub Class_GetDataMember(ByVal DataMember As Stri ng, _Data As Object)Set Data = rsNamesEnd Sub只要发生该事件一一即当该类对象被绑定到一个数据使用者,如DataGrid控件时,代码将返回该recordset 对象。11. 在Form对象的代码模块中,声明一个数据类的对象变量:Opti on ExplicitPrivate datNames As NamesData 类变量12. 在Form对象的Load事件的代码中,将 DataGrid 控件的DataSource设置为该类对象。Private Sub Form_Load()创建一个新的NamesData对象Set datNames = New NamesData将这个DataGrid 绑定到新的数据源datNamesSet DataGrid1.DataSource = datNamesEnd Sub13. 按F5键运行该工程。二、访问 Hierarchical FlexGrid 控件要在Visual Basic 中安装并访问Hierarchical FlexGrid控件,请使用以下步骤。要安装和访问Hierarchical FlexGrid 控件1. 在“工程”菜单中,选择“部件”。出现“部件”对话框。2. 在“控件选项卡中,选择“ Microsoft Hierarchical FlexGrid Control 6.0,然后单击“确定”。MSHFIexGrid控件被添加到Visual Basic工具箱中。3. 在Visual Basic工具箱中,单击MSHFIexGrid控件,然后将其拖到一个 Visual Basic窗体上-或者-在Visual Basic工具箱上,双击 MSHFIexGrid控件,将其添加到窗体上将数据绑定到 Hierarchical FlexGrid在开始使用它的功能之前,必须先将数据绑定到Hierarchical FlexGrid。要将数据绑定到控件,可以使用 Visual Basic 新的Data Binding Manager ,或者通过编程实现。在将Hierarchical FlexGrid 绑定到数据源之后,Hierarchical FlexGrid 在设计时屏幕显示是一个空白列和一个空白行。字段和带区信息不是自动提取的(要获得此类信息,请参阅取得结 构信息)。如果Hierarchical FlexGrid在没有字段和带区信息的情况下运行,那么在显示数据的时候将使用缺省的属性设置。就是说,如果Hierarchical FlexGrid被绑定到一个分层结构的Command那么显示出的数据带区将是水平排列的,每个带区中包含一列,分别对应于Recordset中的每一个字段。绑定到数据源的Hierarchical FlexGridM SH FlexGrid 控件换源Ccnnsction T1Com m an d 共J冢Commind 对象使用 Visual Basic Data Bi ndi ng Ma nager 将数据绑定到Hierarchical FlexGrid本节 说 明如 何使 用Visual Basic Data Binding Manager将数据绑 定到 HierarchicalFlexGrid。Data Binding Manager 提供了一种便于进行数据绑定的用户界面。使用 Visual Basic Data Binding Man ager设置 DataSource1. 为Hierarchical FlexGrid创建数据源。数据源可以是 DataEnvironment对象或者ActiveXData Control ,或者是一种新的 Visual Basic功能。在本例中,将数据源创建为DataEnvironment 对象。2. 在Visual Basic工具箱上,单击MSHFIexGrid控件,然后将其拖到一个 Visual Basic窗 体上。-或者-在Visual Basic工具箱上,双击 MSHFIexGrid控件将其拖到一个 VisualBasic 窗体上。3. 在Visual Basic “属性窗口中,将 DataSource属性设置为包含了希望被绑定到 Hierarchical FlexGrid 的 Comma nd 对象的 DataE nviro nment 对象。警告如果DataSource被重新设置,Hierarchical FlexGrid单元格中的所有用户定义的、修改过的数据都将被丢失。4.在Visual Basic属性”窗口中,将DataMember属性设置为DataE nviro nment中的一个Comma nd对象。如果希望在HierarchicalFlexGrid中查看分层结构的数据,那么必须指定Comma nd分层结构中最顶部的父Comma nd对象作为DataMember。5. 要查看Hierarchical FlexGrid 中的数据,请在运行”菜单中选择“开始”。-或者-按下F5键。以编程方式将数据绑定到Hierarchical FlexGrid本节描述如何以编程方式将数据绑定到Hierarchical FlexGrid 。要以编程方式设置DataSource1. 在Visual Basic 工具箱中,双击 MSHFIexGrid控件,将其放在一个Visual Basic 窗体上。2. 右击该Hierarchical FlexGrid,然后从快捷菜单中选择查看代码。出现“代码编辑器”窗口。3. 在Form_Load事件中,添加代码来创建一个 ADO Recordset并将其赋予Hierarchical FlexGrid。该代码将在下面的分步骤中提供。注意要以编程方式设置数据源,工程中必须要有指向MicrosoftActiveX Data Objects的引用:在“工程菜单中,选择“引用,然后选择“Microsoft ActiveX Data Objects 2.0Library ”。插入下列代码,创建一个ADO Connection和Recordset,请根据实际情况替换其中的注释(例如,将myDataSource替换为数据源的实际名称):DIM Cn As New Conn ectio n, Rs As New Recordset你需要将替换为你的系统中的一个有效的DSN。Cn.Conn ectio nStri ng = DSN=使用下列代码用于 SHAPE Comma ndsCn .Provider = MSDataShapeCn. CursorLocati on = adUseN one第二种办法,对于SQL Comma nds可使用下列代码Cn. CursorLocati on = adUseN oneCn. Ope n需要为上面创建的 Conn ection 的Recordsets 指定有效的数据源Rs.Source = 现在将Comma nd与Co nn ectio n 关联起来并执行它们。Set Rs.ActiveC onn ecti on = CnRs.Open插入下面的代码,将 Rs中打开的Recordset赋予HierarchicalFlexGridSet MSHFlexGrid1.DataSource = Rs4.要查看 Hierarchical FlexGrid中的数据,请在“运行”菜单中选择“开始”-或者-按下F5键Hierarchical FlexGrid 与分层结构的 Recordset将Hierarchical FlexGrid和一个分层结构的Recordset结合起来可以查看关系类型的信息。在将这些信息显示给用户的时候,可以确保原始数据的安全,使之不被用户修改;也可以通过将文本框 添加到 窗体 defForm 来增力口 Hierarchical FlexGrid 的单元格编辑功能。当 Hierarchical FlexGrid被绑定到分层结构的Recordsets上时,可以使用带区来显示分组的和相 关的 Recordsets。注意在执行本步骤之前,必须先将数据绑定到Hierarchical FlexGrid。为此,请参阅将数据绑定到分层结构的FlexGrid。要使用带区在Hierarchical FlexGrid中显示分层结构的Recordsets1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性。出现HierarchicalFlexGrid的“属性页”对话框。2. 在“通用”选项卡中,设置“带区显示”。关于每一种带区显示的描述,请参阅带区的格式设置。3. 在“带区选项卡中,从“带区框中选择一个带区。这里列出的可用带区是根据 Comma nd分层结构中的 Recordsets确定的。对于每一个带区,生成Recordset的Comman啲名称被显示在括号中。4. 在必要的时候修改每个带区的属性。与此有关的详细信息,请参阅带区的格式设置。5. 单击“确定”,将带区属性应用于Hierarchical FlexGrid 并关闭属性页对话框。带区的格式设置在Hierarchical FlexGrid中,可以利用带区格式设置功能来指定某个Recordset的显示选项。ADO分层结构Recordset中的每一个Recordset都将被创建一个带区。例如,如果将一个 Hierarchical FlexGrid 绑定到一个包含 Customers 和 Orders 的 ADO分层结构,那么 Hierarchical FlexGrid在开始的时候将包含两个带区。通过设置带区的格式,可以定制Hierarchical FlexGrid的屏幕外观。这样就可以突出显示多个带区中的重要信息。允许进行格式设置的带区元素包括:列标头、网格线、颜色和缩进。如果绑定到非分层结构的Recordset,那么控件中将只有一个带区,而且该带区被称为Band0。没有其他带区,因为带区以 Comma nd分层结构中的Recordsets为基础。改变带区的布局通过改变带区的布局,带区内的字段显示方式将得以改变。 在缺省情况下,带区的诸字段将沿 水平方向排列,同标准的网格一样。水平方式的带区显示号 Forn)1;c|x|CustomerlDContactNarrContactT itleAddress:City ALFKIAfredsMariaAnderRepteDbeteSk 5BeflANATRAna Trmillo FAna T ruiilkiOwneiAvch de laM6ANTONArthxiiu MorAntono MorOwnerLl垂直显示方式将导致带区在高度方向上进行扩展,以便能够在带区中容纳所有的字段。Hierarchical FlexGrid中显示的其他带区也将被扩展,确保所有的带区的高度相同。垂直方式的带区显示| 岳 Focm l回CustomerlDCompariyNaCorUactNarrCorttactT rtleAddie$5曰ALFKIA beds FutteMaria AnderSales RepreObete Str. 5| I10&43ALFKIB1395-09 251995-10 2310692ALFKI4199511 031995 1 2 0110702ALFKI4199511 131995-12 2510835ALFKI1396-0215199603-14亠10952ALFKI11S96-04-151996-05-2711011ALFKI3199&0&0919960606BANATRAna T rujilo EAna T ru|dk)OwnerAvda. de la110308ANATR719M-1O19194-11-16-10625ANATR31995 0908199610-06_ 110759ANATR3199512-291996-01 26斗11要设置带区的布局1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性。出现HierarchicalFlexGrid的“属性页”对话框。2. 在“通用”选项卡中设置“带区显示”。3. 单击确定,将带区的显示属性应用于 Hierarchical FlexGrid并关闭属性页对话 框。显示列标头如果带区以水平方式显示,那么可以为Hierarchical FlexGrid设置标头。标头直接显示在带区之上,并且为Hierarchical FlexGrid中的每一个带区分别显示一次。如果在 HierarchicalFlexGrid的顶部和左边只需要为每个带区显示一组标头,请使用固定单元格取代标头。关于固定 单元格的信息,请参阅“自定义固定外观”(在主题自定义Hierarchical FlexGrid 区域中)。1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“实现。出现HierarchicalFlexGrid的“属性页”对话框。2. 在“带区选项卡中,选择列标头,然后在TextStyleHeader 列表框中选择列标头样式。3. 单击“确定,将列标头属性应用于 Hierarchical FlexGrid 并关闭属性页对话框。 水平的列标头改变列的顺序Hierarchical FlexGrid带区中的各列的顺序是可以改变的要改变带区内的列顺序1. 选定需要移动的列。2. 使用上下箭头键将列移动到带区内的新位置上。修改颜色和网格线设置带区的颜色和网格线信息的方法有两种:全体方式和个别方式。修改颜色和网格线的目的通常是为了突出地显示Hierarchical FlexGrid内的某些重要信息,便于用户阅读数据。另外,还可以指定带区内的单元格之间是否需要显示网格线。使用下面的过程可以修改HierarchicalFlexGrid内所有带区的颜色和网格线。注意如果需要改变单个带区的颜色信息,必须使用BackColorBand属性以编程方式进行改变。 要改变全局的颜色和网格线1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性。出现HierarchicalFlexGrid的“属性页”对话框。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 。没有其他的带区,因为带区是以Comman分层结构中的Recordsets 为基础的。使用带区的扩展和收缩功能扩展和收缩功能有助于方便地查看 Recordset 的组织情况,便于滚动查看 FlexGrid 。该功能使用户既能够查看大量的数据, 也可以查看压缩形式的信息。 开展的,那么该带区的左上角会显示出一个缺省的扩展 水平带区都可以使用扩展和收缩功能。当带区处于扩展状态的时候,出现的将是收缩 (-) 量的数据。当带区处于收缩状态的时候,出现的将是收缩(+) 或收缩 (-) 位图。Hierarchical如果一个带区是可无论垂直带区还是位图。在扩展状态下,带区显示出最大数(+) 位图。在扩展状态下,带区显示出最少量的数据。在收缩状态下,带区中可能显示未被填充数据的区域。对未填充区域的格式也有专门的规定。 收缩状态的带区当一个带区处于收缩状态时,它的任何一个记录都不会显示出来,该带区中的列也不会显示 出来。当用户将带区展开时,这些列将显示出来。展开状态的带区具有统一的高度。在必要的情况 下,较小的带区将被扩大以便与较大带区保持一致的高度。扩展状态的带区Kc|x|CountryPhowFakOrdeilDCmlorr *日Gerrnany030-0074320300076541UE43ALFK11O&92ALFKJI10702ALFKI10835ALfKJ1096:alfki11011ALFKJMexico 555472?|5jK5-3741030BAMATF10&25AMATF1079AMATF10926AMATFE)1O35l带区的扩展和收缩本节说明如何为Hierarchical FlexGrid中的带区添加扩展和收缩功能。它还说明如何使用扩展和收缩功能。要在带区中添加扩展与收缩功能Hierarchical1. 右击Hierarchical FlexGrid,然后从快捷菜单中选择“属性”。出现FlexGrid的“属性页”对话框。2. 在“带区”选项卡中, 选择“可扩充带区”。其次,从“带区”列表中选择要扩展的带区。注意 要使一个带区成为可扩展的,它至少要有一个子带区。因此,如果只有Band 0,那么“可扩充带区”复选框将是不可使用的并关闭“属性页”对话框。FlexGrid之后,请从“运行”R
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!