【问题标题】:DatagridView Checkbox Checked?DatagridView 复选框已选中?
【发布时间】:2009-03-23 13:29:13
【问题描述】:

我在 datagridview windows 窗体中有一个复选框,并且有一个事件处理程序 cell_Click 在单元格上单击我检查 datagridview 列是否有一个复选框,如果单元格也被选中,它会显示为真(即复选框未选中,仅选中了 datagrid 视图单元格)并且复选框未选中。我试过了列 gettype 并发现它显示 DatagridViewCheckBox 但检查值错误的类型.???

【问题讨论】:

    标签: c# windows


    【解决方案1】:

    如果我理解正确,您是说复选框值与基础数据不一致?

    这很可能是因为数据已更新并且“脏”,例如它尚未提交到数据源。如果您添加这样的事件处理程序:

    private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
    {
       if (dataGridView1.CurrentCell is System.Windows.Forms.DataGridViewCheckBoxCell)
       {
          dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
       }
    }
    

    然后应该更新数据源,当您查询单元格时,您将拥有正确的复选框状态。

    【讨论】:

      【解决方案2】:

      这里有几件事:

      • 单元格单击事件仅表示用户在数据网格视图上使用鼠标按钮单击,您要查找的可能是 CellValueChanged
      • 此事件将为您提供已更改单元格的坐标。您应该检查它是否在您的复选框列中,然后获取对单元格的引用,您可以检查 cell.Value 以查看它是真还是假。您不会在 DataGridViewCheckBoxColumn 上找到任何值 - 它将位于单元格级别,并且您将始终找到存储在 cell.Value 中的值,无论它是哪种类型的列。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-17
        • 1970-01-01
        • 2021-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-10
        相关资源
        最近更新 更多