我有两个带有文本框和按钮的表单,我希望第一个表单打开第二个表单。然后我继续在第二个表单的文本框中键入一个值,这样当我单击第二个表单上的按钮时,它必须关闭并将文本框的值传递给第一个表单文本框。
到目前为止,我一直试图这样做而没有运气......
我目前在visual studio 2015中使用vb.net
这是我的代码:
Public Class Form1
WithEvents fr2 As New Form2
Private Sub btngetvalue_Click(sender As Object, e As EventArgs) Handles btngetvalue.Click
fr2.Show()
End Sub
Private Sub fr2_passvalue() Handles fr2.passvalue
Me.txtform1.Text = fr2.txtform2.Text
End Sub
End Class
Public Class Form2
Event passvalue()
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub btnpassvalue_Click(sender As Object, e As EventArgs) Handles btnpassvalue.Click
RaiseEvent passvalue()
Me.Close()
End Sub
End Class
我试过直接访问控件但是它不起作用,因为vb.net现在使用类来处理所有事情。我似乎无法弄清楚如何解决这个问题。
答案 0 :(得分:0)
重新定义事件以传递字符串。然后使用Form2事件将值传递给处理程序。
Public Class Form2
Public Event passvalue(text As String)
Private Sub btnpassvalue_Click(sender As Object, e As EventArgs) Handles btnpassvalue.Click
RaiseEvent passvalue(txtform2.Text)
Me.Close()
End Sub
End Class
在Form1中处理它,更新Form1的TextBox。
Public Class Form1
WithEvents fr2 As Form2
Private Sub btngetvalue_Click(sender As Object, e As EventArgs) Handles btngetvalue.Click
fr2 = New Form2()
fr2.Show()
End Sub
Private Sub fr2_passvalue(text As String) Handles fr2.passvalue
Me.txtform1.Text = text
End Sub
End Class
如前所述,Form1直接访问Form2上的控件,这违背了事件的目的。
答案 1 :(得分:0)
您可以简单地定义一个全局变量(Public
),可以从两种表单中访问它。