处理程序子

时间:2017-09-14 14:25:09

标签: vb.net function events handler

我有一个表单(CarForm),它是在调用函数时动态生成的(CarBenefitFrm),它包含一个复选框,单击该复选框将启用文本框(HireBox)。我已将此处理程序与此文本框关联,以便每次文本更改时,都应将文本保存在变量(结果)中,然后返回该结果,此代码包含在名为HireInput的Sub中。但是,我不能将函数的return语句放在sub中。

下面我附上了表格的图片

enter image description here

如何返回变量" result"给来电者?

我知道如何将代码与处理程序关联的唯一方法是将其包含在sub中。我已经阅读了有关代表的内容,但我不知道如何在此处申请。

我会感谢我能得到的任何帮助,也是代表们如何工作的简单解释。

Module CarBnft

Public Function CarBenefitFrm() As Decimal
    Dim result As Decimal

    Dim CarForm As New Form

    'CODE FOR GENERATING BUTTONS, CHECKBOXES, TEXTBOXES GOES HERE

    Dim HireInput = Sub()

                        If (IsNumeric(HireBox.Text) = False) And (String.IsNullOrWhiteSpace(HireBox.Text) = False) Then

                            HireBox.Clear()
                            MsgBox("Please enter a number in this field", MsgBoxStyle.Information, "Error")

                        ElseIf (IsNumeric(HireBox.Text) = True) And (String.IsNullOrWhiteSpace(HireBox.Text) = False) Then

                            Decimal.Parse(HireBox.Text, Globalization.NumberStyles.AllowDecimalPoint)
                            result = HireBox.Text
                            return result  'not working because return
                                           ' statement is within the 
                                           '  HireInput Sub                                          

                        End If

                    End Sub
    AddHandler HireBox.TextChanged, HireInput  'only know how to add code for a handler using a sub

End Function

End Module

1 个答案:

答案 0 :(得分:0)

很抱歉回复很晚。我终于设法得到了我想要的结果。我做的是我在设计时制作了表单(Car Form),然后添加了一个处理程序,这样每当我按下Accept按钮时,结果都会保存在我在模块中创建的公共变量中,这样就可以了在表格中访问。

然后我在调用表单中为Accept按钮添加了另一个处理程序,以便它接收现在存储在Public变量中的结果。

感谢@djv让我了解使用Property以及@Plutonix建议我设计表单。