【问题标题】:How to remove value from datagridview cell on cell click?如何在单元格单击时从 datagridview 单元格中删除值?
【发布时间】:2014-04-04 09:42:09
【问题描述】:

我有一个 datagridview 列,当表单加载时,它的值显示为 0.00,这是一个十进制值。当我单击特定单元格时,我想清除此列单元格值,当我离开单元格时,值(0.00)应该出现在单元格中。我附上一张快照以便更好地理解。

我希望在特定的单元格单击时使用它。十进制值可以吗?如何将单元格设置为空?我在单元格点击上做了一些代码,但没有结果。

  private void dgvForecast_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 3)
            {
                var cell = dgvForecast.Rows[e.RowIndex].Cells[e.ColumnIndex].Style as DataGridViewCellStyle;
                decimal val = Convert.ToDecimal(dgvForecast.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
                cell.Format = "";
                dgvForecast.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = val.ToString("#");
                cell.ApplyStyle(cell);
            }
         }

【问题讨论】:

    标签: c#-4.0 datagridview


    【解决方案1】:

    用于删除可以使用的单元格值

    if (e.ColumnIndex == 3)
            {
                dataGridVirtuals[e.ColumnIndex, e.RowIndex].Value = "";
            }
    

    要在失去焦点的单元格中添加值,您可以使用 CellLeave 事件 例如

    if(e.ColumnIndex==3)
    {
    dataGridView[e.ColumnIndex,e.RowIndex].Value=[yourvalue];
    
    }
    

    【讨论】:

    • 尝试将字段解析为 DataGridViewTextBoxCell,因为我尝试在我的机器上运行它。你的单元格是文本框吗?
    • 是的,我的单元格是 textboxcell 但与数据源绑定的值是双精度数据类型。
    • 哦,如果它与某些数据源绑定,那么您不能直接更改值。先清空你的数据源,然后再绑定一次
    • 例如。假设您的数据源是 List 然后创建一个新列表 List list=new List();然后 cell.datasource=list;
    猜你喜欢
    • 1970-01-01
    • 2021-02-07
    • 2021-12-13
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多