![](/img/trans.png)
[英]Assign Checkbox.checked value invoke checked event in VB.Net
[英]How can I get the checkbox.checked event to fire when I pass it as a parameter in vb.net?
我已經編程了很長時間,但我對 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
您知道 CoreCol 是一個 CheckBox,因此您可以將其轉換為一個,然后將其用作 CheckBox。
If TypeOf CoreCol Is CheckBox Then
Dim myCheckBox = DirectCast(CoreCol, CheckBox)
myCheckBox.Checked = DirectCast(CoreRow(BoxStage), Boolean)
End If
從 CoreRow(BoxStage) 中獲取 boolean 值的另一個轉換。 上面的代碼假設這會起作用,但我不確定 CoreRow(BoxStage) 中有什么。 您可能需要根據值添加一些邏輯,具體取決於它是什么。 例如:
myCheckBox.Checked = CoreRow(BoxStage) = "somevalue"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.