【发布时间】:2021-11-23 07:30:13
【问题描述】:
我已经编程了很长时间,但我对 vb.net 还是比较陌生。而且我避免了传递参数的子程序和函数,因为我总是卡住。我正在尝试编写一个子例程来传递信息,该信息将使用表格中的值填充文本框或复选框,或者清除字段或设置为 false。下面的第一个代码是我一直在做的一个例子,它是有效的。我试图编写一个子例程来传递 1.表单上的文本框或复选框控件的名称、2.数据行值和 3.表中的列名。问题是当我通过一个复选框时,我无法让选中的事件显示在我通过的控件(CoreCol)上。它知道这是一个复选框,它会将复选框的文本设置为真或假,但不会更改选中的框。
这是一个有效的旧方法的例子。对于文本框和复选框
' A Machine
If Not IsDBNull(r("A Machine")) Or Not IsNothing(r("A Machine")) Then
TbXMachA.Text = r("A Machine")
Else
TbXMachA.Text = ""
End If
If Not IsDBNull(r("A CO2 Box?")) Or Not IsNothing(r("A CO2 Box?")) Then
CkbxCO2BoxA.Checked = r("A CO2 Box?")
Else
CkbxCO2BoxA.Checked = False
End If
这行得通
LoadData2TextBox(Me. TbXMachA, r, "A Machine ")
这不是
LoadData2TextBox(Me.CkbxCO2BoxA, r, "A CO2 Box?")
这是我写的子程序
Private Sub LoadData2TextBox(ByRef CoreCol As Control, CoreRow As DataRow, BoxStage As String)
If Not IsDBNull(CoreRow(BoxStage)) Then
If TypeOf CoreCol Is TextBox Then
CoreCol.Text = CoreRow(BoxStage)
End If
If TypeOf CoreCol Is CheckBox Then
CoreCol.??? = CoreRow(BoxStage)
End If
Else
CoreCol.Text = ""
End If
【问题讨论】:
-
DataRow 中 BoxStage 字段的数据类型是什么?
-
@Mary BoxStage 从表中接收列名。可以是 ttext 或复选框
-
BoxStage 数据类型是字符串吗?它是可以是 TextBox 还是 CheckBox 的控件的名称。