如何将文本框的值从一个表单传递到另一个表单

时间:2012-11-27 06:37:06

标签: vb.net

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

6 个答案:

答案 0 :(得分:1)

没有。方式。

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
  1. 使用Click事件:

    Private Sub Button1_Click(sender As Object,e As EventArgs)处理Button1.Click     Form2.TextBox1.Text = TextBox1.Text End Sub

  2. 使用LostFocus事件:

    Private Sub TextBox1_LostFocus(sender as Object,e As EventArgs)处理TextBox1.LostFocus     Form2.TextBox1.Text = TextBox1.Text End Sub

  3. 同样,您可以处理每个事件。

答案 1 :(得分:0)

如果两个表单都在运行,那么您可以使用

 form2.TextBox1.Text=form1.TextBox1.Text

否则,您可以在任何事件

中声明Form2中的公共字符串变量
dim Obj as new Form2
Obj.StrVariable=Me.TextBox1.Text
Obj.Show

并在Form2上加载,

Me.TextBox1.Text=StrVariable

答案 2 :(得分:0)

在Form1.vb中,请确保使用Button.Click等事件并在其中

 Dim obb As New Form2
 obb.val = Me.TextBox1.Text()
 obb.Show()
 Me.Hide()

在Form2.vb中使用名为" val"的属性。

Public Property val As String

就像MyBase.Load这样的事件

TextBox1.Text = val

答案 3 :(得分:0)

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

Module modPrivateVariables

Private strCustomerFirstNameSTR As String

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

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

然后在文本框中文本更改事件使用属性(getCustomerFirstNameSTR)来保存文本框的文本。例如,如果你有一个名为(txtCustomerFirstName)UNder的文本框,那么你将输入文本更改事件getCustomerFirstNameSTR = txtCustomerFirstName.Text。

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

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

然后将变量重置为其默认值,即空字符串。每次从另一个表单中调用它时,这将导致您不断获取任何内容(空文本框)。属性不需要重新实例化,因为它们是通过公共方法访问的,具有自身属性(get和set)方法。

答案 4 :(得分:0)

您可以使用<router-outlet></router-outlet>并在其中声明:

button1_click

然后在您的form2主状态中您声明的之前

Dim obj as new form2
Obj.pass=me.textbox1.text

Obj.show()

处于加载状态

Textbox1.text = pass

现在,当您单击form1上的按钮时,将显示form2,而form2上的textbox1将具有与form1相同的文本。如果您仅将其与文本框,标签或其他类型的STRING一起使用,则可以使用。

答案 5 :(得分:-1)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

' timer1 must be set to true

Timer1.Start() Form1.Show() Me.Hide()

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Form1.TextBox13.Text = TextBox1.Text