StatusBar显示数据库的属性 |
在编辑数据库的记录时,
可以用StatusBar控件
告诉消费者数据库的各种属性,例如正在编辑的表的名称、其
缔造日期、以及最终一次更新的日期 。 名为“frmDataviewer”的Form 名为“sbrData”的StatusBar控件 名为“datData”的Data控件 增加显示数据库属性的StatusBar 用Add 步骤 缔造Panel对象的 集中 。 为每个Panel对象配置AutoSize属性 。 用Panel对象的Text属性显示数据库的属性 。 在PanelClick事件中用SelectCase语句再一次设置属性 。 用Add 步骤 缔造Panel对象的 集中 要在运行时 缔造Panel对象的 集中,需求 使用Add 步骤 。首先需求申明一个Panel类型的变量 。在增加每个Panel对象时, 可以用该变量包括对新 缔造的对象的 引用 。下面的代码在Form对象的Load事件中 缔造了三个Panel对象 。 PrivateSubForm_Load() DimpnlXAsPanel DimiAsInteger Fori=1to3'第一个面板已存在 。 SetpnlX=sbrData.Panels.Add() Nexti EndSub 留神:在向 集中中增加了三个Panel对象之后,控件中实际上有四个面板,缘由是该控件中已缺省地 缔造了一个面板 。 为每个Panel对象配置AutoSize属性 StatusBar控件的一个 特点便是面板 可以依据 本身的内容自动转变大小 。下例循环遍历了全部Panel对象,并将每个的AutoSize属性设置为sbrSpring(1) 。这样每个面板通过“伸缩”分享该控件的总宽度 。 PrivateSubForm_Load() DimpnlXAsPanel DimiAsInteger Fori=1to3'第一个面板已存在 。 SetpnlX=sbrData.Panels.Add() Nexti '转变全部面板的AutoSize 。 Fori=1to4'<--新代码 sbrData.Panels(i).AutoSize=sbrSpring'新 Nexti'新 EndSub 用Panel对象的Text属性显示数据库的属性 要转变全部面板中显示的信息, 惟独设置该Panel对象的Text属性即可 。下面的代码显示了由数据 拜访对象 打开的数据库的有关信息 。 在Form对象的Load事件中,首先 缔造两个数据库变量,并分别赋值为 打开的数据库(Biblio.mdb)和记录集(Authors) 。然 后辈码将Name、DateCreated、LastUpdated和LockEdit属性的值给予每个Panel对象的Text属性 。 '申明数据库变量 。 DimmyDBAsDatabase,myRsAsRecordset '将Database设置为BIBLIO.MDB数据库 。 SetmyDB=DBEngine.Workspaces(0)._ OpenDatabase("BIBLIO.MDB") '将记录集变量设置为Authors表 。 SetmyRs=_ myDB.OpenRecordset("Publishers",dbOpenTable) '将Text属性设置为记录集属性 。 sbrData.Panels(1).Text="名称:"&myRs.Name sbrData.Panels(2).Text=" 缔造日期:"&_ myRs.DateCreated sbrData.Panels(3).Text="上一次 批改的日期:"&_ myRs.LastUpdated sbrData.Panels(4).Text="编辑上锁:"&myRs.LockEdits 在PanelClick事件中用SelectCase语句再一次设置属性 StatusBar控件还 可以用来再一次设置正在显示的属性 。在上面的 利用实例中,DataGrid控件被绑定到Data控件 。(对于如何实现控件的数据绑定的 详尽信息,请参阅《程序员指南》中的“ 使用VisualBasic 标准控件”中的“ 使用ADO数据控件”) 。在该StatusBar显示的属性中,惟独LockEdits属性 可以被再一次设置 。要做到这丝毫, 可以在PanelClick事件中 使用SelectCase语句,确定单击了哪个Panel对象 。PanelClick事件包括有有对被单击的Panel的 引用 。 使用该 引用即可再一次设置被单击的Panel对象的Text属性 。 下面的代码首先 缔造Recordset类型的变量,并将其设置为由Data控件 打开的记录集 。SelectCase语句被用来检测Panel对象的Index属性 。假如Index为4,则LockEdits属性在-1(True)和0(False)中间切换 。最终, 使用新的信息更新Panel对象的Text属性 。 PrivateSubsbrData_PanelClick(ByValPanelAsPanel) DimmyRsAsRecordset'申明Recordset变量 。 'Data控件的名称为"datData" SetmyRs=datData.Recordset'设置变量 。 SelectCasePanel.Index Case1to3 '不能设置这些面板 。 Case4'UpdateablePropertyissettable. '切换该属性 。 myRs.LockEdits=Abs(myRs.LockEdits)-1 '更新Panel对象的Text属性 。 sbrData.Panels(4).Text="LockEdits:"_ &myRs.LockEdits EndSelect EndSub |