0

这是场景。我有 frmMain,它有一个 btnDepts_Click 事件。在同一个表单上,我有一个文本框 txtCustomerActive。

在我的第二个表单 frmDepartments 上,我设置了一个 ScalarQueryDepartments,就像使用 DataGridView 一样:

SELECT Customer, Dept, Name FROM Departments Where Customer = ?

我的问题是,如何从 frmMain 文本框获取值到我的 frmDepartments 表单,我的数据库设置在哪里。我知道我可以在 frmDepartments 加载事件中执行 txtDeptCustomer.Text = frmMain.txtCustomerActive.Text,但是如何捕获该值以传递给 db。我只是在 frmDepartments 中声明一个变量并传递它吗?对新用户的任何帮助将不胜感激。谢谢

4

1 回答 1

1

在第二个表单中,声明一个名为 ID 的公共属性和一个接收它的构造函数:

Public Class Form2

 Public Property Id As Decimal
    'Default constructor
    Public Sub New()   

        InitializeComponent()   

    End Sub

    'Id constructor
    Public Sub New(ByVal id As Decimal)
        InitializeComponent()
        Me.Id = id   
    End Sub

End Class

在您的第一个表单上,您实例化表单并分配值:

 'Pass the desired value to the form2 constructor
 Dim form2 as new Form2(Cdec(txtDeptCustomer.Text))
 form2.show()

您还可以使用默认构造函数并稍后分配属性:

Dim form2 as new Form2()
form2.Id = Cdec(txtDeptCustomer.Text)
form2.show()

当您的 Form2 被实例化时,您将拥有其中的价值。因此,您可以在加载事件中访问它:

Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
   'here you use the value
  Dim SqlComm as string ="SELECT Customer, Dept, Name " & _ 
      "FROM Departments Where Customer ='" & me.Id.tostring & "'"
End Sub
于 2013-10-16T10:48:12.827 回答