我正在尝试使用方法在'employee'类中创建EmployeeID。但是ID需要能够从主设计表单中的"firstname"文本框中提取一个字母,然后使用它来创建一个唯一的ID。但是我无法调用/使用任何类中的任何形式控件,因为它们只在主形式上工作。我如何将控件传递给类,这样我就可以在"雇员"类方法中做到这一点,而不是主要形式?
我希望这有意义。
我同意这是错误的处理方式。但是,如果可以从类中访问表单的控件。您可以通过访问打开的表单(假设它是打开的)或将文本框作为参数传递来做到这一点。
形式:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim EmployeeA As New ClassEmployee
Dim EmployeeAID = EmployeeA.GetEmployeeIDFromOpenForm()
MsgBox("Open Form: " & EmployeeAID)
MsgBox("Passing Control: " & EmployeeA.GetEmployeeIDFromControl(TxtFirstName))
End Sub
类:
Public Class ClassEmployee
Public Function GetEmployeeIDFromOpenForm()
Dim FirstNameText = Application.OpenForms.Item("Form1").Controls.Find("TxtFirstName", True).SingleOrDefault().Text
Return FirstNameText
End Function
Public Function GetEmployeeIDFromControl(FirstNameTextBox As TextBox)
Return FirstNameTextBox.Text
End Function
End Class