我正在处理Windows窗体应用程序,我有两种形式。 1是visitorinfo 2是vistorexitsign。
在visitorinfo中我有保存按钮,而cliking保存按钮我希望从vistirexitsign表单中获取textbox值。
两个表单同时运行,我在访问者信息表单的保存按钮中给出了这样的代码:
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
Dim obj As New VisitorExitsign
Dim vs As String = obj.txtvisitoridExit.Text
Dim Visitorid As String = My.Forms.VisitorExitsign.txtvisitoridExit.Text
但我总是到这里txtvisitoridexit.text值null。没有得到文本值。
我的代码出了什么问题?
答案 0 :(得分:3)
您正在每次点击活动中创建新实例。
Dim obj As New VisitorExitsign
因此,值在新对象中设置,但不在现有对象中设置。
所以实际上你必须引用VisitorExitsign的现有对象。
修改强>
例如:
您正在使用某种方法创建表单VisitorExitsign。
因此,无论何时创建将其引用存储在某个全局变量中。
VisitorExitsign obj = new VisitorExitsign
在您创建表单的地方
然后在点击事件中使用obj并指定文本。
答案 1 :(得分:0)
当您引用My.Forms.VisitorExitSign.txtvisitoridExit.Text
时,您正在引用表单本身而不是表单的实例,如果这有意义的话。因此,您尝试访问默认表单而不是用户输入文本的表单。
您可能想要做的是更改
Dim Visitorid As String = My.Forms.VisitorExitsign.txtvisitoridExit.Text`
到
Dim Visitorid As String = obj.txtvisitoridExit.Text
这样做可以确保Visitorid
从VisitorExitSign
的实例中获取价值。
答案 2 :(得分:0)
尝试这样
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim forms As FormCollection = Application.OpenForms
For Each form As Form In forms
If form.Name = "VisitorExitsign" Then
Dim vs As String = CType(form, VisitorExitsign).txtvisitoridExit.Text
End If
Next
End Sub
宝贵意见:
frmVX = New VisitorExitsign
frmVX.Location = New Point(781, 0)
frmVX.MdiParent = Me
frmVX.Show()
frmVE = New VisitorInfo()
frmVE.Location = New Point(0, 0)
frmVE.MdiParent = Me
frmVE.Tag=frmVX
frmVE.Show()
Button_Click事件
Dim vs As String = CType(me.Tag, VisitorExitsign).txtvisitoridExit.Text
答案 3 :(得分:0)
希望这会有效
创建module
Module modTextValue
Public _textVal As String
End Module
然后在您的表单txtvisitoridexit
LostFocus
的{{1}}个事件
vistirexitsign
Private Sub txtvisitoridexit_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
_textVal = txtvisitoridexit.Text
End Sub
btnSave'click
答案 4 :(得分:0)
试试这个: 在按钮保存中将代码更新为:
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
Dim obj As New VisitorExitsign
obj.ShowDialog()
Dim vs As String = obj.txtvisitoridExit.Text
End sub
当您关闭VisitorExitsign时,变量vs将采用obj.txtvisitoridExit的值