Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将文本框的值从一个窗体传递到另一个窗体_Vb.net - Fatal编程技术网

Vb.net 如何将文本框的值从一个窗体传递到另一个窗体

Vb.net 如何将文本框的值从一个窗体传递到另一个窗体,vb.net,Vb.net,如果我将一个值存储在form1的文本框中,我必须将该值传递到另一个form2的文本框中。将值从一个窗体传递到另一个窗体的方法是什么?如果两个窗体都在运行,则可以使用 form2.TextBox1.Text=form1.TextBox1.Text 否则,您可以在任何事件上以Form2声明公共字符串变量 dim Obj as new Form2 Obj.StrVariable=Me.TextBox1.Text Obj.Show 在Form2负载上 Me.TextBox1.Text=StrVar

如果我将一个值存储在form1的文本框中,我必须将该值传递到另一个form2的文本框中。将值从一个窗体传递到另一个窗体的方法是什么?

如果两个窗体都在运行,则可以使用

 form2.TextBox1.Text=form1.TextBox1.Text
否则,您可以在任何事件上以Form2声明公共字符串变量

dim Obj as new Form2
Obj.StrVariable=Me.TextBox1.Text
Obj.Show
在Form2负载上

Me.TextBox1.Text=StrVariable

在Form1.vb中,请确保使用一个事件,如按钮。单击并插入该按钮

 Dim obb As New Form2
 obb.val = Me.TextBox1.Text()
 obb.Show()
 Me.Hide()
在Form2.vb中,使用名为“val”的属性

在像MyBase.Load这样的事件上

TextBox1.Text = val

以便从另一个窗体检索控件的值(TextBox.Text)。最好的方法是创建一个模块并为私有变量创建一个属性。 保存客户名字的属性示例


模块modPrivateVariables

私有strustomerfirstnamestr作为字符串

Public Property getCustomerFirstNameSTR() As String
    Get
        Return strCustomerFirstNameSTR
    End Get
    Set(ByVal strCustomerFirstName As String)
        strCustomerFirstNameSTR = strCustomerFirstName
    End Set
End Property
端模块

然后在文本框文本更改事件中,使用属性(getCustomerFirstNameSTR)保存文本框的文本。例如,如果在文本更改事件下有一个名为(txtCustomerFirstName)的文本框,则输入getCustomerFirstNameSTR=txtCustomerFirstName.text

文本框的文本现在将分配给“getCustomerFirstNameSTR”属性。现在,您可以从应用程序中的任何位置和任何形式访问此属性的值。例如,如果您有另一种形式的文本框,比如Form2,称为“txtBoxInForm2”,您可以调用txtBoxInForm2.text=getCustomerFirstNameSTR

如果要清除该属性的值,只需键入getCustomerFirstNameSTR=String.Empty。要理解的主要问题是,当您以一种形式(类)创建变量并尝试从另一种形式(另一类)访问其值时,该变量必须重新实例化一次


发生这种情况时,变量将重置为其默认值,即空字符串。这将导致您每次从另一个表单调用时都无法获得任何内容(一个空文本框)。属性不需要重新实例化,因为它们是通过公共方法访问的,在属性本身(get和set)方法中使用这些方法。

有很多方法

1.使用
TextChanged
事件

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Form2.TextBox1.Text = TextBox1.Text
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Form2.Show()
    End Sub
  • 使用
    单击
    事件:
  • 使用
    LostFocus
    事件:

  • 类似地,您可以处理每个事件。

    您可以使用
    按钮1\u单击
    并在其中声明:

    Dim obj as new form2
    Obj.pass=me.textbox1.text
    
    Obj.show()
    
    然后,在你的form2主类之前,在你的form2主类中声明:

    Public property pass as string 
    
    在负载状态下

    Textbox1.text=pass


    现在,当您单击form1上的按钮时,form2将显示,form2上的文本框1将与form1中的文本相同。如果您仅将其与文本框、标签或其他类型的字符串一起使用,则可以使用。

    可能的重复项如何将此类内容视为重复项?上面的链接是一个C#示例,而不是VB示例。
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Form2.TextBox1.Text = TextBox1.Text
        End Sub
    
        Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
            Form2.TextBox1.Text = TextBox1.Text
        End Sub
    
    Dim obj as new form2
    Obj.pass=me.textbox1.text
    
    Obj.show()
    
    Public property pass as string