如何限制用户在我动态创建的网格视图中只选择一个复选框

本文关键字:选择 复选框 一个 视图 用户 何限制 动态 网格 创建 | 更新日期: 2023-09-27 18:28:36

我在winform应用程序的数据网格视图中动态创建了一个复选框。

 DataGridViewCheckBoxColumn myCheckedColumn = new DataGridViewCheckBoxColumn()
                {
                    Name = "MyColumn",
                    FalseValue = 0,
                    TrueValue = 1,
                    Visible = true
                };

我想限制用户一次只能选择一个复选框。

有直接的财产吗?

我在谷歌上搜索并找到了这个答案,但CellContentClick事件并没有得到触发,因为复选框是动态创建的。

 private void mydatagridview_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if ((sender as DataGridView).CurrentCell is DataGridViewCheckBoxCell)
            {
                if (Convert.ToBoolean(((sender as DataGridView).CurrentCell as DataGridViewCheckBoxCell).Value))
                {
                    int currentcolumnclicked = e.ColumnIndex;
                    int currentrowclicked = e.RowIndex;
                    foreach (DataGridViewRow dr in associatinggridView.Rows)
                    {
                        dr.Cells[currentcolumnclicked].Value = false;
                    }
                    associatinggridView.CurrentRow.Cells[currentrowclicked].Value = true;
                }
            }
        }

如何限制用户在我动态创建的网格视图中只选择一个复选框

在我的测试中,所有单元格都会引发CellContentClick,无论它们的列是如何创建的。

void mydatagridview_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    int col = yourCheckboxColumnIndex;
    for (int r = 0; r < mydatagridview.Rows.Count; r++)
        if (r != e.RowIndex && e.ColumnIndex == col ) 
            mydatagridview[col , r].Value = false;
}