Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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
将c#datagridview数据源设置为null后复选框列的奇怪行为_C#_Checkbox_Datagridview - Fatal编程技术网

将c#datagridview数据源设置为null后复选框列的奇怪行为

将c#datagridview数据源设置为null后复选框列的奇怪行为,c#,checkbox,datagridview,C#,Checkbox,Datagridview,我有一个c#datagridview复选框列,在我将数据源设置为null之前,它工作正常。网格将折叠,但会在原始网格的右侧立即添加一个额外的复选框列。如果我再次单击重置按钮,将弹出第三个复选框列。以下代码是此类列的标准代码: 此图显示了单击“重置”的结果。如果我正确理解了问题,并且您提供的代码是重置方法中的全部代码,则需要先删除旧列 我假设在删除和添加之前您只有一列,因此我将编辑您的代码以首先按索引删除它,通常您会希望搜索正确的索引,但这在您的情况下应该可以工作: datagrid.Colum

我有一个c#datagridview复选框列,在我将数据源设置为null之前,它工作正常。网格将折叠,但会在原始网格的右侧立即添加一个额外的复选框列。如果我再次单击重置按钮,将弹出第三个复选框列。以下代码是此类列的标准代码:


此图显示了单击“重置”的结果。

如果我正确理解了问题,并且您提供的代码是重置方法中的全部代码,则需要先删除旧列

我假设在删除和添加之前您只有一列,因此我将编辑您的代码以首先按索引删除它,通常您会希望搜索正确的索引,但这在您的情况下应该可以工作:

datagrid.Columns.RemoveAt(0);
chk = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(chk);

你说它叫重置,但它唯一能做的就是添加一个新的专栏。我不确定我是否理解你的问题。您是说您正在执行问题中的代码,然后想知道为什么会添加另一个复选框列?在任何情况下,如果你问为什么你写的重置方法会这样,你需要发布它的代码。添加整个重置方法,这样我们就可以看到它的作用
datagrid.Columns.RemoveAt(0);
chk = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(chk);