在 vb.net 的两个表单之间传递变量时出现问题



我几乎是 vb.net 的初学者,我必须做一些代码。我想从另一个类(即表单 1(调用表单 2 中的按钮单击,问题是定义为公共的变量,它们的值不会在两个表单之间传递。我的代码简单地呈现如下:

Public class form2
Public Property ResponseTime1 As String
Public Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Responsetime2 = 20
End sub
End class

Pub class form1
Dim Resposetime as string
Dim z as new form2

Public Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
z.button1_click(sender, e)
ResponseTime = form2.ResponseTime2
MsgBox(ResponseTime)   '' show nothing????????????
End sub
End class

如果有人帮助我,我将不胜感激

我看到的第一个问题是从未声明Responsetime2。一些拼写错误进一步弄乱了代码。即使我在Responsetime2 = 20前面贴了一个 Dim 它仍然对 from1 不可见。仅仅因为方法是公共的并不意味着方法内部的可用对象是可见的。即使它是可见的,'响应时间2 也是一个整数,并且您已将响应时间声明为字符串。

从另一个类调用事件过程不是一个好主意。 事件过程用于响应事件,默认情况下是私有的。使代码成为单独的公共方法,并从 form2.button1_Click 和 form1 调用它。

Public Class form25
Public Property ResponseTime2 As Integer
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
SetResponseTime2()
End Sub
Public Sub SetResponseTime2()
ResponseTime2 = 20
End Sub
End Class
Public Class form15
Dim Responsetime As Integer
Dim z As New form25

Public Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
z.SetResponseTime2()
Responsetime = z.ResponseTime2
MsgBox(Responsetime.ToString)
End Sub
End Class

嗨,亲爱的,我不知道你为什么做这个Public Property ResponseTime1 As String很可能你有理由这样做,但我要向你展示我会怎么做

表单 1 代码

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
form2.show
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox(Form2.ResponseTime)
End Sub
End Class

表单 2 代码

Public Class Form2
Public ResponseTime As String
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ResponseTime = "test"
End Sub

结束类

我测试了这个及其工作 希望我能帮助你

最新更新