【问题标题】:how to check checklistbox items using datagridview vb.net?如何使用 datagridview vb.net 检查复选框项目?
【发布时间】:2017-04-20 02:55:46
【问题描述】:

我只是编码的初学者,我想使用datagridview 以编程方式检查checklistbox 中的项目。

数据网格视图值用逗号分隔,例如jhon,Metilda,saman,

Checklistbox 名称为chklistinput,请帮我解决这个问题?

'完整的代码在这里.......................

 Private Sub TextBox10_TextChanged(sender As Object, e As EventArgs) Handles TextBox10.TextChanged

'this is ok and searching as I want 

    Dim SearchV As String = TextBox10.Text
    SearchV = "%" + TextBox10.Text + "%"

    Me.PassIssuingRecordTableAdapter.FillBy(Me.Database4DataSet.PassIssuingRecord, SearchV)


'But the problem bigins here 

    Dim areasback As String = DataGridView1.Rows(0).Cells(6).Value.ToString
    Dim areasback1 As String() = areasback.Split(",")

    For Each x In areasback1
        For i = 0 To areasback.Count - 1

            If chklistInput.Items(i).ToString() = x.ToString() Then
                chklistInput.SetItemChecked(i, False)
            End If

        Next
    Next

End Sub

【问题讨论】:

  • 您要检查还是不检查项目? chklistInput.SetItemChecked(i, False) 将该项目设置为未选中。检查它是否正确。假设 areasback 中的项目数等于 CheckListBox 控件中的项目数可能很危险。
  • 我尝试了许多不同的方法,但对我没有任何作用。我再次尝试使用“真实”声明。但同样的结果。我需要从属性菜单中更改任何内容吗?有时无法完成简单的代码是令人沮丧的。请帮忙?
  • 使用调试器。在第一个“for each”行停止,运行代码,当它停止时,将鼠标悬停在变量上以检查值。
  • @larsTech 我检查了。但有趣的是值是正确的,这意味着我需要的值正在加载并且最终结果不会出现。

标签: vb.net checklistbox


【解决方案1】:

你必须循环 chklistInput.Items.Count - 1 而不是 areasback.Count - 1

使用以下代码:

Dim areasback As String = DataGridView1.Rows(0).Cells(6).Value.ToString
Dim areasback1 As String() = areasback.Split(",")
Dim intCount as integer = 0 

For each str as string in areasback1

    For intCount = 0 To chklistInput.Items.Count - 1

        If chklistInput.Items(intCount).ToString() = str Then
            chklistInput.SetItemChecked(intCount , True)
        End If

    Next

Next

chklistInput.Refresh()

注意:比较区分大小写

【讨论】:

  • 感谢您的快速回复。我使用了确切的代码,但没有发生任何事情。可能是我在错误的地方添加了这段代码。请给我建议。
  • 看@LarsTech 评论
  • @hardi 。谢谢你,我也试过了。但最终的结果还没有出来。
  • @user3236873 尝试使用chklistInput.Item(intCount).checked = True 而不是chklistInput.SetItemChecked(intCount , True)
  • chklistInput.Item(intCount).checked = True 不能在 intcoun 后添加.checked
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多