以下是该方案。我有frmMain,它有一个btnDepts_Click事件。在同一个表单上,我有一个文本框txtCustomerActive。
在我的第二个窗体frmDepartments上,我使用DataGridView设置了一个ScalarQueryDepartments:
SELECT Customer, Dept, Name FROM Departments Where Customer = ?
我的问题是,如何从frmMain文本框获取值到我的db设置的frmDepartments表单。我知道我可以在frmDepartments加载事件中执行txtDeptCustomer.Text = frmMain.txtCustomerActive.Text,但是如何捕获该值以传递给db。我只是在frmDepartments中声明一个变量并传递它吗?对新用户的任何帮助将非常感谢。感谢
答案 0 :(得分: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