【问题标题】:Display Datagridview dynamically created chechboxvalue? c#显示Datagridview动态创建的chechboxvalue? C#
【发布时间】: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


【解决方案1】:

像这样设置列的 True 和 False 值:

Kamerachk.TrueValue = true; 和 Kamerachk.TrueValue = false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    相关资源
    最近更新 更多