StatusBar顯示資料庫的屬性

來源:互聯網
上載者:User

  在編輯資料庫的記錄時,可以用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屬性即可。下面的代碼顯示了由Data Access Objects開啟的資料庫的有關資訊。

  在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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.