【问题标题】:DataGridView check all Rows vb.netDataGridView 检查所有行 vb.net
【发布时间】:2017-03-07 18:45:02
【问题描述】:
Private Sub comboBoxStudentID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles comboBoxStudentID.SelectedIndexChanged
    For Each dr As DataGridViewRow In Me.dataGridViewStudent.Rows

        If dr.Cells(0).Value.ToString.Contains(comboBoxStudentID.Text) Then dr.Visible = True Else dr.Visible = False


    Next
End Sub

我创建了这个方法来检查和显示包含与从 comboBoxStudentID 中选择的相同学生 ID 的行,问题是它只检查 DataGridView 的第一行。如果学生 ID 匹配,如何让它检查所有行?

【问题讨论】:

  • 您能提供更多信息吗?代码看起来不错。
  • @ProGrammer 当我从 comboBoxStudentID 中选择学生 ID 1 时,datagridview 将显示包含学生 ID 1 的行。但是当我选择其他学生 ID 时它不起作用,我不知道为什么。
  • 您是否检查过文本仅限于 ID "2" 而不是 "2 " 或类似名称?
  • @ProGrammer 你能详细说明一下这个想法,因为我是 VB 新手。我该怎么做?我的代码是否遗漏了什么?
  • @user3219333 ProGrammer 所说的是做Dim rowValue As String = dr.Cells(0).Value.ToStringDim studentId As String = comboBoxStudentID.Text,这样您就可以清楚地识别这两个值。这在调试以检查您的值时会很方便。那么你的 if 语句将是 If rowValue.Contains(studentId)...

标签: vb.net datagridview


【解决方案1】:

在不知道您的数据是如何组织的情况下,您可以通过将DataGridViewComboBox 绑定到同一个数据源来做到这一点。由于未指定此内容并查看代码的 sn-p(似乎有效),它似乎循环遍历行,如果当前选定的组合框文本包含在第一列单元格中,则使该行可见。否则使该行不可见。

发布的代码似乎可以工作,但是您可能需要考虑一种情况。如果组合框包含DataGridView 第一列中的值,那么当用户在组合框中选择一个值时,DataGridView 将仅显示与当前组合框选择匹配的那些值。这似乎是您正在尝试做的事情。

问题是如何重新显示所有行?

一旦组合框选择更改为某个值,用户可以删除选择,但除非您处理另一个事件,否则所有行都不会显示。此外,这种策略对用户来说也不是很直观。一种可能的解决方案(如下)只是将“重置”的顶部项目添加到组合框项目的顶部。然后,当用户选择“重置”时,所有行都将变得可见。希望这会有所帮助。

重申一下:您应该考虑使用DataSource 和可能的BindingSource 进行设置,这会自动为您完成。只是一个想法。

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
  If ComboBox1.SelectedIndex > 0 Then
    For Each dr As DataGridViewRow In DataGridView1.Rows
      If (Not dr.IsNewRow) Then
        If dr.Cells(0).Value.ToString.Contains(ComboBox1.Text) Then
          dr.Visible = True
        Else
          dr.Visible = False
        End If
      End If
    Next
  Else
    For Each row As DataGridViewRow In DataGridView1.Rows
      row.Visible = True
    Next
  End If
End Sub

【讨论】:

    猜你喜欢
    • 2019-02-14
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2023-03-13
    • 2015-04-12
    • 1970-01-01
    相关资源
    最近更新 更多