Images 應用程序中的事件
Image 應用程序對事件的響應如下:
1.每一個 Image 控件的 Click 事件使 Shape 控件的 Left 屬性與它自己的 Left 屬性相同,並將圖形移到 Image 的頂端。
2.調用 PictureBox 的 Cls 方法清除 StatusBar 的當前標題。
3.調用 PictureBox 的 Print 方法在 StatusBar 上打印新標題。
Image 控件 Click 事件的代碼如下:
Private Sub imgHeart_Click()
shpCard.Left = imgClub.LeftpicStatus.Cls
picStatus.Print "Selected: Club"
shpCard.Visible = True
End Sub
注意,Click 事件代碼中第一行利用 = 操作符為 Shape 控件的 Left 屬性賦一個值 (讓它等於 Image 控件的 Left 屬性)。下面兩行調用方法,因而不需要操作符。在第三行中,值 ("Selected: Club") 是 Print 方法的一個參數。
該應用代碼中還有一行很重要;它在 Form Load 事件中。
shpCard.Visible = False
將 Shape 控件的 Visible 屬性設為 False,Shape 控件被隱藏起來直至單擊第一幅 Image。
在 Image 控件 Click 事件的最後一步將 Visible 屬性設為True。
詳細信息 關於屬性、方法和事件詳細信息,請參閱第五章“編程基礎”。
附加控件
Visual Basic 工具箱還包含幾個其它的標准控件。有些控件可用來處理外部數據庫中的大量數據。有些控件可用來訪問 Windows 文件系統。還有其它一些控件難以分類,但卻十分有用。
在 Visual Basic 應用程序中還可使用 ActiveX 控件,以前稱為自定義控件或 OLE 控件,用法與使用標准控件一樣。Visual Basic 的專業版和企業版中的若干 ActiveX 事件同樣具有創建自定義控件的功能。可以想像,加上大量廠商制作的附加 ActiveX 控件,幾乎可以完成任何工作。
詳細信息 關於使用 ActiveX 控件的詳細信息,請參閱第四章“工程的管理”。
數據訪問控件
現代商業中,大多數信息存放於一個或多個中央數據庫中 。 Visual Basic 提供了多種數據訪問控件,可以訪問多數流行的數據庫,如 Microsoft Access和 SQL 服務器。
1.ADO Data 控件用來連接數據庫。可把它看成是數據庫與窗體中其它控件之間的一個管道線。Data 控件的屬性、方法和事件允許從應用程序內部定位和處理外部數據。
2.DataList 控件與 ListBox 控件相似。DataList 控件與ADO Data 控件一起使用時,它將自動被來自外部數據庫某一字段的數據清單填充。
3.DataCombo 控件如同 DBList 和 TextBox 的組合。TextBox 區域內選中的文本可以編輯,變更出現在底層數據庫中。
4.DataGrid 控件顯示在網格或表中的數據。與ADO Data 控件一起使用時,它顯示來自於外部數據庫多個字段的完全可編輯數據。
5.Microsoft Hierarchical FlexGrid 控件是唯一能顯示數據的多個視圖的控件。可把它看作網格和樹或大綱控件的組合。運行時,用戶可重新安排行和列以提供數據的不同視圖。
詳細信息 關於 Data 控件的詳細信息,請參閱第七章“使用 Visual Basic 的標准控件”。
文件系統控件
Visual Basic 提供三個控件以增加應用程序中的文件處理能力。通常,這些控件在一起使用以查看驅動器、目錄和文件。有一些特殊的屬性和事件使它們相互聯系。
DriveListBox 控件看起來像 ComboBox 。它提供下拉式驅動器清單,用戶可以從中作出選擇。
DirListBox 與 ListBox 控件相似,但它具有顯示當前所選驅動器目錄清單的內置能力。
FileListBox 控件看起來像顯示所選目錄的文件名清單的 ListBox。
注意 這些控件主要是為在早期 Visual Basic 版本中創建的應用程序的向下兼容性而提供的。CommonDialog 控件提供處理文件訪問的簡單方法。關於 CommonDialog 控件的詳細信息,請參閱本章後面的“其它控件”。
其它控件
Visual Basic 還提供了其它幾個標准控件。每個控件都服務於唯一的目的。
Timer 控件可以在應用中以重復時間間隔產生一個事件。這對不需要與用戶交互的代碼的執行非常有用。
OLE 容器控件很容易為應用程序增加鏈接和嵌入等功能。通過 OLE 容器控件,可以提供對任何 OLE——可用的應用程序(如 Microsoft Excel、Word 和其它許多應用程序)的功能的訪問,。
CommonDialog 控件在應用程序中增加內置對話框 ,用來選擇文件、顏色、字體和打印函數。
詳細信息 關於標准控件的附加信息,請參閱第七章“使用 Visual Basic 的標准控件”。
焦點概述
焦點是接收用戶鼠標或鍵盤輸入的能力。當對象具有焦點時,可接收用戶的輸入。在 Microsoft Windows 界面,任一時刻可運行幾個應用程序,但只有具有焦點的應用程序才有活動標題欄,才能接受用戶輸入。在有幾個TextBox 的 Visual Basic 窗體中,只有具有焦點的 TextBox 才顯示由鍵盤輸入的文本。
當對象得到或失去焦點時,會產生 GotFocus 或 LostFocus 事件。窗體和多數控件支持這些事件。
下列方法可以將焦點賦給對象。
運行時選擇對象。
運行時用快捷鍵選擇對象。
在代碼中用 SetFocus 方法。
有些對象,它是否具有焦點是可以看出來的。例如,當命令按鈕具有焦點時,標題周圍的邊框將突出顯示(見圖 3.19)。
只有當對象的 Enabled 和 Visible 屬性為 True 時,它才能接收焦點。Enabled 屬性允許對象響應由用戶產生的事件,如鍵盤和鼠標事件。Visible屬性決定了對象在屏幕上是否可見。
注意 只有不包含任何可接收焦點的控件的窗體,才能接收焦點。
控件的 Validate 事件
控件也有一個 Validate 事件,在控件失去焦點前發生。然而,僅當即將接受焦點的控件的 CausesValidation 屬性設置為 True 時該事件發生。在許多情況下,由於Validate 事件發生在失去焦點之前,因此對數據驗證來說它比 LostFocus 事件更適用。詳細信息,請參閱第七章“使用 Visual Basic 標准控件”中的“通過限制焦點驗證控件數據”。
不能接受焦點的控件
有些控件,例如輕量控件,不能接受焦點。輕量控件包含下面的控件:
Frame 控件
Image 控件
Label 控件
Line 控件
Shape 控件
此外,運行時不可見的控件,如 Timer 控件,不能接受焦點。