编码样式到窗体上的init控件

时间:2012-01-24 14:22:48

标签: vba coding-style

这是填充组合框的正确方法吗?

在表单上,​​combox被命名为cmbType1cmbType2cmbType3 ...等等。

我正在使用以下类型的逻辑来初始化组合框:

Private Sub fillCombo(count As Integer)
    Dim cmbControl As Object
    For i = 1 To count

        Set cmbControl = Me.Controls.item("cmbType" + CStr(i))
        cmbConnectorTypeControl.AddItem ("ABC")
    Next i
End Sub

所以我只想交叉验证这是正确的编码风格吗?

欢迎任何建议......

2 个答案:

答案 0 :(得分:2)

亚历克斯是对的。如果表单上已经包含组合框,并且您的通用fillCombo方法有效,请尝试更改方法以将 ComboBox 作为参数。它将保存用于查找和简化代码的命中。我假设你并没有真正将“ABC”添加到所有组合框中,直到计数,但即使你是我,我宁愿在循环中调用这个方法。

Private Sub fillCombo(ByVal vCombobox As ComboBox)

    vCombobox.AddItem ("ABC")

End Sub

答案 1 :(得分:0)

您可以跳过需要指定初始计数的内容;

fillCombo "cmbType"
...
function fillCombo(name)
dim ctrl as Control
for each Control in Me.Controls
    if typeof Control is ComboBox then
        if left$(Control.name, len(name)) = name then
            Control.additem "ABC"
        end if
    end if
next
end function