如何在VB6中向函数传递空值?

3

我需要做的事情:向用户展示一条信息。然而,有时我需要在文本框中显示,有时又需要在组合框中显示。

我已经做的事情:我创建了两个函数来接收: 第一个函数 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

你标记了VBScript,但这不是VBScript。 - Bond
哦...抱歉...请稍等一下。 - EricHideki
1个回答

4
TextBoxComboBox都是VB的Control类的一部分,因此您可以使用Control对象来通用地表示它们。

例如:

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

把问题的标题改一下是个好主意,不是吗? - EricHideki
1
我可以处理那个。 - Bond
没问题。祝你好运。 - Bond

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接