下面的代码是表单代码,它更改图像或通知用户图像已经更改。在表单中,我有一个名为Image1的图像控件,其图片属性必须更改。我只是在寻求关于如何从这段代码生成类模块(.cls)的帮助。
Private Image1Color As String
Private Sub Form_Load()
Image1Color = "Green"
End Sub
Private Sub CheckIn1_Click()
If Image1Color = "Green" Then
Image1.Picture = LoadPicture ("Color\red1.jpg")
Image1Color = "Red"
Else
MsgBox ("This table is already occupied")
End If
End Sub发布于 2012-07-19 00:01:03
如果要真正重用表单代码,可以执行以下操作:
ImageControlWrapper.cls:
Private m_ksColor_Green As String = "Green"
Private m_ksColor_Red As String = "Red"
Private m_sImageColor As String
Private WithEvents m_oImageControl As Image
Private Sub Class_Initialize()
m_sImageColor = m_ksColor_Green
End Sub
Public Sub Attach(ByRef in_oImageControl As VB.Image)
Set m_oImageControl = in_oImageControl
End Sub
Private Sub m_oImageControl_Click()
If m_sImageColor = m_ksColor_Green Then
Set m_oImageControl.Picture = LoadPicture("Color\red1.jpg")
m_sImageColor = m_ksColor_Red
Else
MsgBox "This table is already occupied"
End If
End SubTest.frm:
Private m_oImageControlWrapper As ImageControlWrapper
Private Sub Form_Load
Set m_oImageControlWrapper = New ImageControlWrapper
m_oImageControlWrapper.Attach Image1
End Sub我使用字符串常量来表示颜色,这样编译器就可以在错误地使用常量时发现错误。如果你错了实际的字符串,这是一个恼人的错误修复。但是,如果您真的不需要使用字符串,最好将m_sImageColor转换为布尔类型或枚举类型。
https://stackoverflow.com/questions/11514890
复制相似问题