萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> StatusBar顯示數據庫的屬性

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

copyright © 萬盛學電腦網 all rights reserved