我在VB.NET中工作,并且有一个包含多个列的datagridview,第一个是checkboxcolumn。我想添加功能来限制用户可以选择的行数。例如,我可能在datagridview中有10行条目,但是只想允许检查5个复选框。有没有人对如何解决这个问题有任何想法?
答案 0 :(得分:0)
您可以使用datagridview的readonly属性来阻止编辑。并使用for循环来限制要禁用的所有行。
for i=5 to datagridview1.rows.count-1
dataGridView1.Rows[i].Cells[columnindex].ReadOnly = true;
next
指定要在列index处禁用的列的索引。此代码将禁用编辑datagridview的第6行到最后一行。
答案 1 :(得分:0)
您可以在CheckBoxes
中维护ViewState
的状态,然后检查没有检查项目的数组列表长度
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