我在一个名为connecting.vb的类中有一个函数
Public Function bring_it(ByVal a As Integer) As String
some code in here .....
Form3.Show()
Form3.TextBox1.Text = dl.Item("workorder").ToString
Form3.TextBox2.Text = dl.Item("ptw").ToString
end function
在form3加载时我希望文本框传递值
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dim al as new connecting
al.bring_it(a)
end sub
我不得不在bring_it函数中使用form3.show(),因为当form3加载时它不显示传递的值,但问题是我得到两个窗口一个有所需的值而另一个是空的
当我按下按钮时我需要显示form3(form3是一个带文本框的编辑窗口)
我也想改变bring_it函数输出一个数组,但我不知道怎么做...我不知道如何使用那个输出数组让我们假设结果数组是这个
st(3)={"hell","yes","no")
当我打电话给那个功能
al.bring_it(a)
如何获得例如st(1)
和st(2)
...等分别?提前致谢
尝试指定类的职责。你的Connecting
课程很可能负责保持与某事物的联系。此连接与UI无关,因此此类不应包含任何UI代码。但是,它可以提供一些自动确定的参数(这是我假设workorder
和ptw
)作为properties,可能是只读的。
Class Connecting
'...
Public ReadOnly Property WorkOrder As String
Public Function BringIt(ByVal a As Integer) As String
'...
_WorkOrder = dl.Item("workorder").ToString()
'...
End Function
End Class
然后,您的表单类(顺便说一句,请给它一个合理的名称)可以访问这些属性并将它们分配给它的文本框:
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dim al As New connecting
al.bring_it(a)
WorkOrderTextBox.Text = al.WorkOrder
'...
End Sub
您有几个选项可以从函数中返回多个值。这是一个返回数组的示例。
Public Function bring_it(ByVal a As Integer) As String()
some code in here .....
Form3.Show()
Form3.TextBox1.Text = dl.Item("workorder").ToString
Form3.TextBox2.Text = dl.Item("ptw").ToString
Return New String(){"a","b","c"}
end function
调用它看起来像:
Dim bringReturn() as String = bring_it(a)
您可以访问bringReturn(0),带返回(1)和带回程(2)。
这是一个返回元组的示例。
Public Function bring_it(ByVal a As Integer) As Tuple(Of String, String, String)
some code in here .....
Form3.Show()
Form3.TextBox1.Text = dl.Item("workorder").ToString
Form3.TextBox2.Text = dl.Item("ptw").ToString
Return New Tuple(Of String, String, String)("a", "b", "c")
end function
调用它看起来像:
Dim bringReturn as Tuple(Of String, String, String) = bring_it(a)
您可以通过bringReturn.Item1,bringReturn.Item2和bringReturn.Item3访问它。
Nico的建议也不错,但与我的回答是分开的。您想要将GUI与业务内容分开。
我真的很喜欢Nico的回答和解释。我提供这个作为替代品,因为我觉得元组作为裤子口袋很方便。
Public Function bring_it(ByVal a As Integer) As (WorkOrder As String, PTW As String)
Dim strWorkOrder As String = dl.Item("workorder").ToString
Dim strPTW As String = dl.Item("ptw").ToString
Return (strWorkOrder, strPTW)
End Function
然后调用你的功能......
Dim result = bring_it(x)
txtWorkOrder.Text = result.WorkOrder
txtPTW.Text = result.PTW