传递与传播在函数

时间:2017-03-01 22:57:56

标签: vb.net

我有一个验证我在页面上的多个输入上运行(例如,检查每个日期条目文本框上的有效日期)。我希望有一个函数来传递信息,而不是在整个页面上复制相同的代码。

现在,我有这个:

Private Function HasDateError(ByRef dateErrorDiv As HtmlGenericControl, txtDate As TextBox) As Boolean
    dateErrorDiv.Visible = False

    If (date is not valid)
        dateErrorDiv.Visible = True
    Else
        txtDate.Text = Date.Parse(txtDate.Text)
        ' I know this seems silly, but it fixes problems where users enter a date in a weird format and don't know why it was wrong
    End If

    Return dateErrorDiv.Visible
End Function

我遇到的问题:

尽管传递了ByRef,但dateErrorDiv.Visible和txtDate.Text并未被此代码更新。

如何传递控件(HtmlGenericControl,TextBox等)以便我可以在函数中更新它们的属性(.Visible,.Text等)?

修改:我已尝试将ByValByRef都传递给我,我使用了一个断点来验证行dateErrorDiv.Visible = True是否被点击,并且该值不是{&1}。改变。

作为测试,我甚至将函数简化为以下(并再次使用断点来验证.Visible的值从未改变过):

Private Function HasDateError(ByRef dateErrorDiv As HtmlGenericControl, txtDate As TextBox) As Boolean
    dateErrorDiv.Visible = False
    dateErrorDiv.Visible = True

    Return dateErrorDiv.Visible
End Function

0 个答案:

没有答案