如何限制用户选择,我动态创建的GridView中只有一个复选框 [英] How do I restrict user to select only single checkbox in gridview which i created dynamically
本文介绍了如何限制用户选择,我动态创建的GridView中只有一个复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个复选框成WinForm应用程序动态数据网格视图。
DataGridViewCheckBoxColumn myCheckedColumn =新DataGridViewCheckBoxColumn()
{
NAME =根据MyColumn
FalseValue = 0,
TrueValue = 1,
可见=真
};
我要限制用户在同一时间只选择单个复选框。
有没有直接的财产?
我用Google搜索,发现这个答案,但CellContentClick事件没有得到触发的复选框动态创建的。
私人无效mydatagridview_CellContentClick(对象发件人,DataGridViewCellEventArgs E)
{
如果((发件人为DataGridView中).CurrentCell是DataGridViewCheckBoxCell)
{
如果(Convert.ToBoolean(((发件人为DataGridView中).CurrentCell为DataGridViewCheckBoxCell).value的))
{
INT currentcolumnclicked = e.ColumnIndex;
INT currentrowclicked = e.RowIndex;
的foreach(在associatinggridView.Rows的DataGridViewRow博士)
{
dr.Cells [currentcolumnclicked] .value的= FALSE;
}
associatinggridView.CurrentRow.Cells [currentrowclicked] .value的= TRUE;
}
}
}
解决方案
在我的测试中CellContentClick提高所有单元格,无论怎样他们列创建的。
无效mydatagridview_CellContentClick(对象发件人,DataGridViewCellEventArgs E)
{
INT COL = yourCheckboxColumnIndex;
对于(INT R = 0;为r mydatagridview.Rows.Count; R ++)
如果(R = e.RowIndex和放大器;!&安培; e.ColumnIndex == COL)
mydatagridview [COL,R]。价值= FALSE;
}
I have created a checkboxes into data grid view in winform application dynamically.
DataGridViewCheckBoxColumn myCheckedColumn = new DataGridViewCheckBoxColumn()
{
Name = "MyColumn",
FalseValue = 0,
TrueValue = 1,
Visible = true
};
I want to restrict user to select only single checkbox at a time.
Is there any direct property?
I googled and found this answer but CellContentClick event does not get trigger as checkboxes created dynamically.
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;
}
}
}
解决方案
In my tests the CellContentClick is raised for all Cells, no matter how their columns are created.
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;
}
这篇关于如何限制用户选择,我动态创建的GridView中只有一个复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文