Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 最大数量复选框列datagridview_Vb.net_Checkbox_Datagridview - Fatal编程技术网

Vb.net 最大数量复选框列datagridview

Vb.net 最大数量复选框列datagridview,vb.net,checkbox,datagridview,Vb.net,Checkbox,Datagridview,我在VB.NET中工作,有一个包含多列的datagridview,第一列是checkboxcolumn。我想添加限制用户可以选择的行数的功能。例如,我可能在datagridview中有10行条目,但只允许选中5个复选框。有人对如何进行这项工作有什么想法吗 您可以使用datagridview的readonly属性来阻止编辑。并使用for循环来限制要禁用的所有行 for i=5 to datagridview1.rows.count-1 dataGridView1.Rows[i].Cells[co

我在VB.NET中工作,有一个包含多列的datagridview,第一列是checkboxcolumn。我想添加限制用户可以选择的行数的功能。例如,我可能在datagridview中有10行条目,但只允许选中5个复选框。有人对如何进行这项工作有什么想法吗

您可以使用datagridview的readonly属性来阻止编辑。并使用for循环来限制要禁用的所有行

for i=5 to datagridview1.rows.count-1

dataGridView1.Rows[i].Cells[columnindex].ReadOnly = true;

next

指定要在列索引处禁用的列的索引。此代码将禁用对datagridview第6行到最后一行的编辑。

您可以在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