在vb.net中将单选按钮参数传递给另一个函数

在vb.net中将单选按钮参数传递给另一个函数,vb.net,function,radio-button,parameter-passing,Vb.net,Function,Radio Button,Parameter Passing,我有两个函数,一个是SaveData(),另一个是sendmail() 在SaveData()中,保存选定的单选按钮,并在最后调用SendMail() 在SendMail()中,单选按钮被“测试”,然后根据单选按钮的选择发送两封电子邮件中的一封 我遇到的问题是正确地传递参数。我尝试了几种不同的方法,但没有将参数发送到SendMail() 单选按钮为是/否问题 关于为什么不传递参数有什么想法吗 以下是我所拥有的: Protected Function SaveData() ... Q1 = Me.

我有两个函数,一个是SaveData(),另一个是sendmail()

在SaveData()中,保存选定的单选按钮,并在最后调用SendMail()

在SendMail()中,单选按钮被“测试”,然后根据单选按钮的选择发送两封电子邮件中的一封

我遇到的问题是正确地传递参数。我尝试了几种不同的方法,但没有将参数发送到SendMail()

单选按钮为是/否问题

关于为什么不传递参数有什么想法吗

以下是我所拥有的:

Protected Function SaveData()
...
Q1 = Me.rblnewqst1.SelectedValue
        Q2 = Me.rblnewqst2.SelectedValue
        Q3 = Me.rblnewqst3.SelectedValue
        Q4 = Me.rblnewqst4.SelectedValue
        Q5 = Me.rblnewqst5.SelectedValue

SendEmail()是


就像他在评论中提到的硬代码一样,我建议您始终使用Option Explicit和Option Strict on

我要做的第一件事是改变SendMail部分的工作方式,从单选按钮中获取值。您的If正在检查和整数值,因此我将使用integer作为类型

更像是:

Protected Sub SendEmail(ByVal q1 As Integer, ByVal q2 As Integer)

If q1 = 2 Or q2 = 2 Then
etc...
End IF
我缩短了列表,这样我就不用打字了。一般来说,我认为发送值比发送整个对象更好,除非出于特定原因需要整个控件。另外,除非您别无选择,否则我不建议您发送对象


我建议的另一件事是,为了测试它,在sendEmail子文件中设置一个断点,使用quick watch查看发送到您正在检查的方法的实际对象/类型

变量Q1、Q2等声明为什么?如果我是您,我会启用Option Explicit和Option Strict,然后查看您的数据类型转换问题(如果有)。这一点非常重要,请始终启用Option Strict和Explicit。一开始可能有点痛苦,但它会让你成为一个更好的程序员。
Protected Sub SendEmail(ByVal q1 As Integer, ByVal q2 As Integer)

If q1 = 2 Or q2 = 2 Then
etc...
End IF