如何将字符串调用到另一个元素的代码

时间:2015-10-17 19:37:21

标签: vb.net

我遇到了这段代码的麻烦,我不知道搜索这个主题的正确关键字。如果标题不清楚,我很抱歉。

我正在尝试使用“Dim”语句创建两个不同的字符串,并使用按钮调用它但它无效。

Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If CheckBox1.Checked = True Then
        Dim text1 As String = "This is message number 1"
    End If

    If CheckBox2.Checked = True Then
        Dim text2 As String = "This is message number 2"
    End If
End Sub

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
    MsgBox(text1)
End Sub

看起来text1和text2字符串只是为了在Public Sub Form1_Load上使用而生成,我怎样才能在Private Sub Button8_Click上使用它?

2 个答案:

答案 0 :(得分:0)

使变量成为类级成员:

Private text1 As String
Private text2 As String

Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If CheckBox1.Checked = True Then
        text1 = "This is message number 1"
    End If

    If CheckBox2.Checked = True Then
        text2 = "This is message number 2"
    End If
End Sub

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
    MsgBox(text1)
End Sub

通常在将值从一个方法传递到另一个方法时,您可以将它们作为方法参数。但是对于事件处理程序,您并不直接调用处理程序方法。由于处理程序正在响应对象级事件,因此为了共享信息,它应该以对象级状态存储。

答案 1 :(得分:0)

您需要在Form1中声明一个私有字符串变量:

Private Text As String = ""

然后,在此事件中,相应地更改Text的值。

Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If CheckBox1.Checked = True Then
    Text = "This is message number 1"
End If

If CheckBox2.Checked = True Then
    Text = "This is message number 2"
End If
End Sub

最后点击按钮,

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
MsgBox(Text)
End Sub