用Visual Basic6類別模組打造控制項

來源:互聯網
上載者:User

VB6因為簡單易用,受到很多朋友的喜歡。可是也有人說它功能簡單,沒有給開發人員提供足夠的 發揮餘地。比如不能方便地繼承現有控制項而派生出自己的控制項。(什嗎?寫ActiveX控制項?太麻煩了吧。 要花大量時間在介面的設計和實現上,而且你不想讓你的軟體發布時帶一堆OCX控制項吧?)其實還是有辦 法的,我們可以利用VB6裡的類別模組實現對控制項的特殊控制和事件響應。本文介紹使用類別模組把普通的 Label控制項變成表單動態分割條。

圖1 帶分隔條的表單

初識類別模組

類別模組其實是一個對象的定義,封裝了一些屬性和方法,使用前需要產生一個執行個體:

’產生類別模組clsTest的一個執行個體test
Dim test as new clsTest

然後可以使用類別模組的方法:

test.DoSomthing() ’調用test 的方法DoSomthing()

一個簡單的例子

做一個滑鼠移上去後自動獲得焦 點並將內容選中的“聰明”編輯框。

1、建立一工程,在[工程]菜單中,選擇[添 加類別模組],添加一個類別模組,更改其名稱為clsTest。

2、進入類別模組編輯介面(如圖2)。

圖2 編輯類別模組

在左邊的下拉框中 選擇“通用”,鍵入以下代碼:

’定義一個帶事件的文字框變數
Dim WithEvents MyText As TextBox
’儲存文字框是否獲得焦點的布爾變數
Dim bSetted As Boolean
’自己定義的類別模組的方法,傳入參數是文字框。
Public Sub BindText(t As TextBox)
 ’將文字框變數設定為傳入的文字框,即是對傳入文字框的引 用
 Set MyText = t
End Sub

3、在左邊的下拉框中選擇“Class”,在右邊下拉框中選擇Initialize,這是類別模組 的初始化事件,可以在這裡寫自己的初始化代碼。VB會自動為我們添加一個事件子程式。我們要做的就 是在其中添上自己的代碼。其實這一步略過也沒什麼影響,不過對變數進行初始化是一個好習慣。

Private Sub Class_Initialize()
 ’將文字框變數初始化Nothing
 Set MyText = Nothing
 bSetted = False
End Sub

4、在左邊的 下拉框中選擇“MyText”,注意到了嗎,它就是我們在第2步定義的帶事件的文字框變數。VB 把它加進來了,再到右邊下拉框中點擊下拉按鈕,呵呵,看到什麼了?原來是我們熟悉的TextBox的所有 事件!只不過這裡的MyText文字框並不實際存在,只是一個代

號,等著你給它指定一個實際 的文字框呢。

添加事件響應代碼,這就不用我說了吧。 

Private Sub MyText_GotFocus()
 bSetted = True
End Sub
Private Sub MyText_LostFocus()
 bSetted = False
End Sub
’滑鼠在控制項上移動時,如果還沒設定焦點,將 它設為焦點,
’並將內容選中
Private Sub MyText_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If (Not bSetted) Then
   MyText.SetFocus
  MyText.SelStart = 0
  MyText.SelLength = 9999
 End If
End Sub

到此,類別模組宣告完畢,儲存它(.cls檔案)。

5、下 面就是類別模組的使用,非常簡單。現在一個表單上放3 個TextBox控制項,名稱分別為Text1、Text2、Text3。

圖3 測試類別模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.