Board logo

標題: [分享] 物件類別應用的模型 [打印本頁]

作者: Hsieh    時間: 2010-5-3 15:14     標題: 物件類別應用的模型

本帖最後由 Hsieh 於 2011-3-22 08:10 編輯

[attach]30[/attach]這是最基礎的物件類別應用的模型
可從範例中學習如何宣告物件類別
將同類物件集合做同一事件
以簡單計算器為例
[attach]5087[/attach]
USERFORM1模組
  1. Private Sub CommandButton19_Click() '=號按鈕
  2. Dim Nr As Variant
  3. Nr = Application.Evaluate(Label1.Caption)
  4. Nr = IIf(IsError(Nr), Err.Number, Nr)
  5. If Label1.Caption <> "" Then Label2.Caption = CStr(Nr)
  6. End Sub

  7. Private Sub CommandButton20_Click() '←號按鈕
  8. If Label1.Caption <> "" Then Label1.Caption = Mid(Label1.Caption, 1, Len(Label1.Caption) - 1) '減少右邊1個文字
  9. End Sub

  10. Private Sub CommandButton21_Click()
  11. Unload Me '卸除表單
  12. End Sub


  13. Private Sub UserForm_Initialize() '表單初始事件
  14. For i = 1 To 18 '將前個按鈕加入陣列
  15.    Set ctrl = Controls("CommandButton" & i)
  16.    ReDim Preserve obj(i)
  17.    Set obj(i).MyButton = ctrl
  18. Next
  19. End Sub
複製代碼
Module1模組
  1. Public obj() As New Class1 '陣列變數內容是新的物件類別
複製代碼
物件類別模組 CLASS1
  1. Public WithEvents MyButton As MSForms.CommandButton '此類別物件為表單按鈕
  2. Sub MyButton_Click() '此類別單擊事件
  3. Dim MyStr As String
  4. MyStr = UserForm1.Label1.Caption '字串變數的值是表單標籤文字
  5. MyStr = MyStr & MyButton.Caption '增加字串變數內容
  6. UserForm1.Label1.Caption = MyStr '將表單標籤文字變更
  7. End Sub
複製代碼

作者: clio    時間: 2016-3-31 09:41

Public WithEvents MyButton As MSForms.CommandButton…原來是這樣使用,這樣可以減少很多的設定,感謝版主的分享




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)