Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何在单元格单击时从datagridview单元格中删除值?_C# 4.0_Datagridview - Fatal编程技术网

C# 4.0 如何在单元格单击时从datagridview单元格中删除值?

C# 4.0 如何在单元格单击时从datagridview单元格中删除值?,c#-4.0,datagridview,C# 4.0,Datagridview,我有一个datagridview列,当窗体加载时,它的值显示为0.00,这是一个十进制值。我想在单击特定单元格时清除此列单元格值,当我离开单元格时,该值(0.00)应出现在单元格中。为了更好地理解,我附上了一张快照 我想在特定的单元格点击这个。是否可以使用十进制值?如何将单元格设置为空?我已经做了一些代码的细胞点击,但没有结果 private void dgvForecast_CellClick(object sender, DataGridViewCellEventArgs e)

我有一个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);
            }
         }

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

if (e.ColumnIndex == 3)
        {
            dataGridVirtuals[e.ColumnIndex, e.RowIndex].Value = "";
        }
要将值放入失去焦点的单元格,可以使用CellLeave事件 乙二醇


尝试将该字段解析为DataGridViewTextBoxCell,因为我在我的机器上进行了尝试,并且正在运行。。您的单元格是textbox,对吗?是的,我的单元格是textboxcell,但与数据源绑定的值是double datatype。噢,如果它与某些数据源绑定,那么您不能直接更改该值。首先清除数据源,然后重新绑定它。假设您的数据源是List,然后创建一个新列表,作为List List=newlist();然后cell.datasource=list;
if(e.ColumnIndex==3)
{
dataGridView[e.ColumnIndex,e.RowIndex].Value=[yourvalue];

}