【发布时间】:2018-12-28 00:00:37
【问题描述】:
我想选中所有/仅选中某些复选框。 我尝试了 stackoverflow 的各种版本,但似乎都没有成功。 动态创建数据网格后直接调用代码,因为我只想加载一次数据。 - Datagrid 在我的 Form_Load 中创建 复选框的值已更改但不显示。
//这就是我创建 Datagrid 列的方式 - 与问题无关
for (int kacnt = 1; kacnt <= Ei.Kaanzahl; kacnt++)
{
DataGridViewCheckBoxColumn Kachk = new DataGridViewCheckBoxColumn();
Kachk.HeaderText = "Kamera" + kacnt;
Kachk.Width = 70;
WarDataGridView.Columns.Add(Kachk);
}
//我实际遇到问题的代码——值的显示
foreach (DataGridViewRow row in WarDataGridView.Rows)
{
for (int col = 1; col < WarDataGridView.ColumnCount; col++)
{
(WarDataGridView.Rows[row.Index].Cells[col] as DataGridViewCheckBoxCell).Value = true;}}
【问题讨论】:
-
不清楚你在问什么。请考虑发布minimal reproducible example 以重现问题并描述问题和预期结果。
-
您能否提及您尝试更新 DataGridView 源的事件或方法?更新 datagridview 源后,您将需要刷新.. 尝试关注 stackoverflow 讨论,stackoverflow.com/questions/7008361/…
-
你要检查的列的列索引是多少?您从索引 1 开始,这意味着您正在跳过第一列(索引 0)。此外,如果您的复选框列被隐藏,您需要在 for 循环中使用
WarDataGridView.Columns.Count。WarDataGridView.ColumnCount只返回显示的列。 -
编辑了以上内容..我只想检查显示的列,是的,我故意跳过第一列,因为它是文本列..非常感谢
-
您是否使用数据源,即
WarDataGridView.DataSource = dataSource_dataTable?我注意到数据绑定后数据没有立即完成加载。在这种情况下,您需要一个WarDataGridView.DataBindingComplete事件,并从那里设置列。您可能还需要使用Kamerachk.TrueValue = true和Kamerachk .FalseValue = false设置特定列
标签: c# winforms checkbox datagridviewcolumn