将c#datagridview数据源设置为null后复选框列的奇怪行为
我有一个c#datagridview复选框列,在我将数据源设置为null之前,它工作正常。网格将折叠,但会在原始网格的右侧立即添加一个额外的复选框列。如果我再次单击重置按钮,将弹出第三个复选框列。以下代码是此类列的标准代码:将c#datagridview数据源设置为null后复选框列的奇怪行为,c#,checkbox,datagridview,C#,Checkbox,Datagridview,我有一个c#datagridview复选框列,在我将数据源设置为null之前,它工作正常。网格将折叠,但会在原始网格的右侧立即添加一个额外的复选框列。如果我再次单击重置按钮,将弹出第三个复选框列。以下代码是此类列的标准代码: 此图显示了单击“重置”的结果。如果我正确理解了问题,并且您提供的代码是重置方法中的全部代码,则需要先删除旧列 我假设在删除和添加之前您只有一列,因此我将编辑您的代码以首先按索引删除它,通常您会希望搜索正确的索引,但这在您的情况下应该可以工作: datagrid.Colum
此图显示了单击“重置”的结果。如果我正确理解了问题,并且您提供的代码是重置方法中的全部代码,则需要先删除旧列 我假设在删除和添加之前您只有一列,因此我将编辑您的代码以首先按索引删除它,通常您会希望搜索正确的索引,但这在您的情况下应该可以工作:
datagrid.Columns.RemoveAt(0);
chk = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(chk);
你说它叫重置,但它唯一能做的就是添加一个新的专栏。我不确定我是否理解你的问题。您是说您正在执行问题中的代码,然后想知道为什么会添加另一个复选框列?在任何情况下,如果你问为什么你写的重置方法会这样,你需要发布它的代码。添加整个重置方法,这样我们就可以看到它的作用
datagrid.Columns.RemoveAt(0);
chk = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(chk);