簡體   English   中英

如何獲取Checked Listbox vb.net的檢查狀態

[英]How to get checked state of Checked Listbox vb.net

我有一個檢查列表框,我正在運行並將名稱保存到數據庫。 在我運行時,我需要查看復選框是否已選中或清除。 我嘗試過以下代碼,但無濟於事:

If chklbRegister.GetItemCheckState(nLoop).ToString = "1" Then
.Parameters.AddWithValue("@sqlAttended", 1)
Else
.Parameters.AddWithValue("@sqlAttended", 0)
End If

我也嘗試過:

If chklbRegister.GetItemCheckState(nLoop) = True Then

但它仍然沒有奏效。 想法請。 謝謝格雷厄姆

GetItemCheckState返回一個枚舉 枚舉不是字符串而不是布爾值。
您應該再次測試枚舉的定義值

If chklbRegister.GetItemCheckState(nLoop) = CheckState.Checked Then
    -----

如果將ToString方法應用於枚舉值,則會獲得枚舉的翻譯文本,在您的情況下,單詞“已檢查”而不是字符串“1”。
當然,作為整數類型的枚舉基本數值,你總是可以將返回值強制轉換為整數,但你永遠不應該這樣做,而是使用正確的枚舉語法

作為最后的說明。 這個問題應該由編譯器發出信號,而不會超過編譯階段。 此編譯器行為是由Option Strict設置為Off而不是On引起的。 我建議在項目配置中更改此選項,以避免此類可能非常微妙的其他錯誤。

您可以看到GetItemCheckState的文檔,它從CheckState枚舉中返回一個值,因此您需要檢查:

chklbRegister.GetItemCheckState(nLoop) = CheckState.Checked

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM