跨窗体使用变量-VB



关于使用Visual Basic在表单之间传递变量,我有一个相当简单的问题(我想)。

我有一个有两种形式的程序(Form1和Form2)。Form1有3个单选按钮,用户必须选择其中一个,然后加载Form2。

现在我已经这样做了,如果选择了radiobutton1,公共变量"radio_select"将等于"radiobutton 1",如果选择radiobutton.2,"radio_selecti"将等于"radiobutton_2"。

但每当我在第二个表格中尝试调用"radio_select"时,它都会显示为空白。为什么会这样?我该怎么修?

我试过使用if form1.radiobutton1.checked = true,但无论我选择了哪个单选按钮,我都会得到第一个单选按钮。

我认为表单正在卸载,或者某个地方出现了问题,因为一旦初始化,似乎没有任何变量被传递到第二个表单。还要注意,当调用第二个表单时,第一个表单是隐藏的Me.Hide()

您是否考虑过一个轻微的重新设计,即在Form2上创建一个名为RadioSelect的属性,然后在显示Form2:之前从Form1中设置它

Class Form2
    Public Property RadioSelect As String
    ...
End Class
...
Dim f2 as new Form2()
f2.RadioSelect = "radiobutton2"
f2.Show() ' Or f2.ShowDialog()

这可以让你远离不必要的公共变量,也应该确保Form2可以从Form1或任何调用它的人那里看到它需要什么

编辑:以下对我有效:

Public Class Form1
    Public Test As String
    Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        Test = "I'm Here"
        Me.Hide()
        Form2.ShowDialog()
    End Sub
End Class
Public Class Form2
    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Text = Form1.Test
    End Sub
End Class

相关内容

  • 没有找到相关文章

最新更新