DataGrid控件的使用四

2016-02-19 13:33 5 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的DataGrid控件的使用四,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - 编程语言 】

  使用Bookmarks和SelBookmarks跟踪记录
  Bookmarks和SelBookmarks提供了标记记录的一种手段。当编写应用程序中的特定功能(诸如允许最终用户手工地选择多个不相邻的记录,进行所选记录的大批更新)时,这就很有必要。在这些情形中,需要标记哪些记录已被选择,因此可以使用SelBookmarks集合及其属性。
  有两个函数,分别是CellText和CellValue方法,需要标记才能正确执行。
  
  标记用户的选择
  SelBookmarks集合包含所有选定的记录的书签。当最终用户手工选择记录时(即在单击时按住CTRL键),每一个选定的记录的书签都会加入到该集合中。使用标准的循环,用户可以知道已经选定了什么,也可以保存书签(因为可能需要恢复某个值),以及执行操作:
  DimiasInteger'计数器
  DimintCountAsInteger
  intCount=DataGrid1.SelBookmarks.Count-1
  ReDimarrSelBK(intCount)'声明用于保存书签的数组。
  Fori=0TointCount
    ArrSelBK(i)=DataGrid1.SelBookmarks(i)
    '在此处执行操作。如果该操作必须被
    '取消,则退出该循环,然后使用该数
    '组来取消这些更改。
  Nexti
  
  通过在程序中添加到SelBookmarks集合来选择记录
  通过将记录添加到这个集合,也可以在程序中选定记录。例如,可能有一个显示指定的客户所有订货的网格。如果要高亮显示该客户花费超过$100的所有记录,则对记录进行过滤,并将结果书签添加到SelBookmarks集合。
  DimrsAsRecordset
  Setrs=Adodc1.Recordset
  
  WhileNotrs.EOF
    Ifrs!SupplierID=12Then
    DataGrid1.SelBookmarks.Addrs.Bookmark
    EndIf
    rs.MoveNext
  Wend
  
  显示计算结果字段
  假设在表中有一个名为"Price"的字段,并且想使用本地税率来计算表中每一项的税费。这就是一个计算结果字段,可以通过修改DataSource的查询来计算这个值,并把这个值返回给DataGrid控件。
  要在DataGrid控件中创建一个计算结果字段
  1.确认在机器上已为Northwind数据库建立了一个OLEDB数据源;如果还没有创建这样的一个数据源,请按照“创建Northwind的OLEDBData连接”的步骤操作。
  2.在窗体上放置一个ADOData控件和一个DataGrid控件。
  3.将ADOData控件的ConnectionString属性设置为Northwind的数据源。
  4.设置ADOData控件的RecordSource属性。在“属性”窗口中,单击“记录源”并输入SelectProductName,UnitPrice,(UnitPrice*.082)AsTaxFromProducts。
  5.将DataGrid控件的DataSource属性设置为这个ADOData控件。
  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控件不在“工具箱”中,则在“工程”菜单中单击“部件”,
  再单击“MicrosoftDataGridControl”,然后单击“确定”。
  3.在“工程”菜单中,单击“引用”。在“引用”对话框中,单击“MicrosoftActiveXDataObjects2.0Library”。
  4.在“工程”菜单中,单击“添加类模块”来给工程添加一个数据类模块。
  5.在“工程资源管理器”窗口中,单击并选定“类”图标,并按F4键显示“属性”窗口。
  6.在“属性”窗口中,将类的名称更改为NamesData。
  7.在“属性”窗口中,单击“DataSourceBehavior”并将该属性更改为vbDataSource。
  8.在该类模块的Declarations部分,创建一个ADODBRecordset变量,如下所示:
  OptionExplicit
  PrivateWithEventsrsNamesAsADODB.RecordSet
  使用WithEvents关键词来声明该变量,使用户可以对RecordSet对象的事件编程。
  9.在该类的Initialize事件中,添加下述代码:
  PrivateSubClass_Initialize()
    '将新的数据成员的名称添加到DataMember集合
    '这使其它对象可以看见这些可用的
    DataMembersDataMembers.Add"Names"
  
    SetrsNames=NewADODB.RecordSet   '设置对象变量。
    '创建一个具有两个字段的recordset,并打开该recordset。
    '第一个记录具有一个整数的数据类型,第二个记录是一个最大可
    '达256个字符的字符串。CursorType被设置为OpenStatic
    '——一个可更新的对一组记录的快照。LockType被设置为
    'LockOptimistic,以允许对该recordset进行更新。
    WithrsNames
    .Fields.Append"ID",adInteger
    .Fields.Append"Name",adBSTR,255
    .CursorType=adOpenStatic
    .LockType=adLockOptimistic
    .Open
    EndWith
  
    DimiAsInteger
    Fori=1to10  '添加十条记录。
    rsNames.AddNew
    rsNames!ID=i
    rsNames!Name="Name"&i
    rsNames.Update
    Nexti
    rsNames.MoveFirst'移到该记录集的开始。
  EndSub
  这部分代码首先创建recordset对象,然后给该对象添加两个字段。代码接着给recordset添加十条记录。
  10.在该类的GetDataMember事件中,添加下述代码:
  PrivateSubClass_GetDataMember(ByValDataMemberAsString,_
  DataAsObject)
     SetData=rsNames
  EndSub
  只要发生该事件——即当该类对象被绑定到一个数据使用者,如DataGrid控件时,代码将返回该recordset对象。
  11.在Form对象的代码模块中,声明一个数据类的对象变量:
  OptionExplicit
  PrivatedatNamesAsNamesData'类变量
  12.在Form对象的Load事件的代码中,将DataGrid控件的DataSource设置为该类对象。
   PrivateSubForm_Load()
     '创建一个新的NamesData对象
     SetdatNames=NewNamesData
     '将这个DataGrid绑定到新的数据源datNames
     SetDataGrid1.DataSource=datNames
   EndSub
  13.按F5键运行该工程。
  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)->

来源:http://www.tulaoshi.com/n/20160219/1604632.html

延伸阅读
标签: Web开发
一個將datagrid控件內容輸出到excel文件的demo. 生成EXCEL文件#region 生成EXCEL文件 public void setToExcel() { //            Response.Clear(); //            Response.Buffer= true; //...
使用CommonDialog控件 CommonDialog控件提供诸如打开和保存文件、设置打印选项、选择颜色和字体等操作的一组标准对话框。运行Windows帮助引擎时,控件还能够显示帮助。 CommonDialog控件在VisualBasic和MicrosoftWindows动态连接库Commdlg.dll例程之间提供了接口。为了用该控件创建对话框,必须要求Commdlg.dll在Microsof...
按钮控件的使用 作者:杜修杏 下载本文示例代码 最近有不少朋友发信到我的邮箱,其中有高手也有菜鸟,也许他们问的问题我还不能一一解答,但是他们的来信的确让我感受到极大的鼓舞。今天忙里偷闲,翻译了一片外国的文章,献给那些摸索中的菜鸟们。 下面将通过一个最简单的程序来说明Windows的...
使用ADOData控件 ADOData控件使用MicrosoftActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合OLEDB规范的数据源。使用VisualBasic的类模块也可以很方便地创建子集的数据提供者。 尽管可以在应用程序中直接使用ActiveX数据对象,但AD...
使用Frame控件 Frame(框架)控件可以用来对其他控件进行分组,以便于用户识别。使用框架控件可以将一个窗体中的各种功能进一步进行分类,例如,将各种选项按钮控件分隔开。 在大多数的情况下,框架控件的用法是比较“消极的”,我们用它对控件进行分组,但是通常没有必要响应它的事件。不过,它的Name、Caption和Font属...

经验教程

229

收藏

51
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部