【问题标题】:Checkbox In Listview + vb.netListview + vb.net中的复选框
【发布时间】:2011-02-10 21:16:36
【问题描述】:

任何人都可以帮助我如何做到这一点..

我在 vb.net 中有一个带有 Checkboxes 的 ListView,我想要做的是当用户选中复选框时,程序会忽略用户在选中复选框时的响应,而是将复选框取消选中..

这个问题是用于可能的验证..

感谢您对此的积极回应..

【问题讨论】:

  • 快速问题...如果您不希望用户能够检查它们,为什么要在 ListBox 中使用复选框?它是只读列表吗?
  • 我必须使用带有复选框的列表视图,以便用户选择要保存到数据库中的数据。如果行有错误无法保存,我也必须禁用该复选框在数据库中..

标签: vb.net listview checkbox


【解决方案1】:
Dim lastUndo As Boolean = False
Private Sub thisListView_ItemChecked(sender As System.Object, e As System.Windows.Forms.ItemCheckedEventArgs) Handles thisListView.ItemChecked
    If lastUndo Then
        lastUndo = False
    Else
        If thisListView.Focused Then
            lastUndo = True
            e.Item.Checked = Not e.Item.Checked
        End If
    End If
End Sub

【讨论】:

  • 这个例子允许列表视图复选框被其他控件或操作选中或取消选中,但是当用户单击列表视图中的复选框时,处理程序将撤消更改的复选框状态,即用户将无法更改此列表视图的复选框状态。
【解决方案2】:

编辑,删除未经测试的解决方案。

Private Sub ListView1_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles ListView1.ItemCheck
    e.NewValue = CheckState.Unchecked
End Sub

【讨论】:

  • 我已经尝试过了,但我不工作..我也在 selectedIndexChange 事件中尝试但仍然不工作..
  • 我错过了同时存在 Checked 和 Check 事件,我认为如果它在 Checked 事件中,我之前的想法可能会奏效,但无论哪种方式,我编辑的解决方案都更整洁。
  • 我也会尝试,但该代码永远不允许用户检查另一行。我已经有一个嵌套语句但仍然无法正常工作。你有什么想法吗?
  • 嗯,就我理解的问题而言,上面的答案确实有效。如果不只是让它们全部处于未选中状态,您还想将它们保持在它们当前的任何值,e.NewValue = e.CurrentValue 可能会起作用。如果您只想禁用某些行,您应该可以使用 e.Index 我想。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
相关资源
最近更新 更多