3

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

4

6 回答 6

2

有一个没有。的方式。

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) Handles Button1.Click
        Form2.TextBox1.Text = TextBox1.Text
    End Sub
  1. 使用LostFocus事件:
    Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
        Form2.TextBox1.Text = TextBox1.Text
    End Sub

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

于 2017-01-03T13:55:08.703 回答
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
于 2012-11-27T10:11:35.310 回答
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
于 2014-11-11T20:51:27.220 回答
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

End Module

然后在文本框的 TextChanged 事件中使用该属性getCustomerFirstNameSTR来保存文本框的文本。例如,如果您有一个名为 ( txtCustomerFirstName) 的文本框,您可以在其 TextChanged 事件下输入getCustomerFirstNameSTR = txtCustomerFirstName.Text

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

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

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

于 2016-06-03T00:03:25.367 回答
0

您可以在button1_click那里使用 and 状态:

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 上的 textbox1 将具有与 form1 中相同的文本。前提是您仅将其与文本框、标签或其他类型的字符串一起使用,否则将起作用。

于 2020-01-14T23:04:59.807 回答
-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
于 2015-09-01T23:06:20.483 回答