如何限制用户在我动态创建的网格视图中只选择一个复选框
本文关键字:选择 复选框 一个 视图 用户 何限制 动态 网格 创建 | 更新日期: 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;
}