【发布时间】:2015-01-09 12:55:01
【问题描述】:
我在 VB.NET 中工作,并且有一个包含多个列的 datagridview,第一个是复选框列。我想添加限制用户可以选择的行数的功能。例如,我可能在 datagridview 中有 10 行条目,但只想允许选中 5 个复选框。有人对如何解决这个问题有任何想法吗?
【问题讨论】:
标签: vb.net checkbox datagridview
我在 VB.NET 中工作,并且有一个包含多个列的 datagridview,第一个是复选框列。我想添加限制用户可以选择的行数的功能。例如,我可能在 datagridview 中有 10 行条目,但只想允许选中 5 个复选框。有人对如何解决这个问题有任何想法吗?
【问题讨论】:
标签: vb.net checkbox datagridview
您可以使用 datagridview 的 readonly 属性来阻止编辑。并使用 for 循环来限制要禁用的所有行。
for i=5 to datagridview1.rows.count-1
dataGridView1.Rows[i].Cells[columnindex].ReadOnly = true;
next
在列索引处指定要禁用的列索引。此代码将禁用对 datagridview 的第 6 行到最后一行的编辑。
【讨论】:
您可以在ViewState 中维护CheckBoxes 的状态,然后检查数组列表的长度,它会为您提供检查的项目数
Dim CheckBoxArray As ArrayList
If ViewState("CheckBoxArray") IsNot Nothing Then
CheckBoxArray = DirectCast(ViewState("CheckBoxArray"), ArrayList)
Else
CheckBoxArray = New ArrayList()
End If
从ViewState添加或删除项目
If chkAll.Checked Then
If CheckBoxArray.IndexOf(checkAllIndex) = -1 Then
CheckBoxArray.Add(checkAllIndex)
End If
Else
If CheckBoxArray.IndexOf(checkAllIndex) <> -1 Then
CheckBoxArray.Remove(checkAllIndex)
CheckAllWasChecked = True
End If
End If
【讨论】: