如何将空值传递给 VB6 中的函数?

How to pass a null value to a function in VB6?

我需要的是:向用户显示一条消息。但是,有时我需要在文本框中显示,有时需要在组合框中显示。

我做了什么:我创建了两个函数来接收: 第一个功能 1.我想显示给用户的命令 2. 将包含消息的文本框的名称

function txtfunction(Byval msg as String, Byval txt as Textbox)

第二个函数 1.我想显示给用户的命令 2. 包含消息的组合框的名称

function cbxfunction(Byval msg as String, Byval cbx as ComboBox)

它可以正常工作,但我想知道是否可以将这两个功能合二为一。因为当我调用该函数时,我可以为一个参数(文本框或组合框)设置一个空值。

我想要的功能:

function txtcbxfunction(Byval msg as String, Byval txt as TextBox, Byval cbx as ComboBox)

我希望调用的方式:

txtcbxfunction("HELLO",nameTextBox, null) 'Message in the TextBox
txtcbxfunction("HELLO",null,nameComboBox) 'Message in the ComboBox

TextBoxComboBox 都是 VB 的 Control class 的一部分,因此您可以使用 [=15] 来表示它们=]对象。

例如:

Function txtcbxfunction(ByVal msg As String, c As Control)
    c.Text = msg  ' Both TextBox and ComboBox have a "Text" property, so this works
End Function

然后无论您使用的是 TextBox 还是 ComboBox:

都以相同的方式调用它
txtcbxfunction "Test Message", Text1
txtcbxfunction "Test Message", ComboBox1

如果你想确保只有TextBoxComboBox控件被传递给你的函数,你可以使用TypeName()函数来确定控件的类型:

Function txtcbxfunction(ByVal msg As String, c As Control)
    Select Case TypeName(c)
        Case "TextBox", "ComboBox"
            c.Text = msg
        Case Else
            Exit Function
    End Select
End Function