【问题标题】:Datagridview cell decimale fromat during editing in c# window form在 C# 窗口窗体中编辑期间的 Datagridview 单元格小数
【发布时间】:2016-04-10 11:15:17
【问题描述】:

我正在 C# windows 窗体中创建一个应用程序,并希望在 datagridview 单元格中编辑期间将 datagridview 单元格格式设置为十进制,如 0.00。鉴于以下事件正在帮助我实现此目的,但是当我在新行中进行编辑时,这会生成错误“其他信息:对象引用未设置为对象的实例。” 活动如下

 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{

    if (e.ColumnIndex == 0 && e.RowIndex != this.dataGridView1.NewRowIndex)
    {
        double d = double.Parse(e.Value.ToString());
        e.Value = d.ToString("0");
    }
    if (e.ColumnIndex == 5 && e.RowIndex != this.dataGridView1.NewRowIndex)
    {
        double d = double.Parse(e.Value.ToString());
        e.Value = d.ToString("0.00");
    }
    if (e.ColumnIndex == 6 && e.RowIndex != this.dataGridView1.NewRowIndex)
    {
        double d = double.Parse(e.Value.ToString());
        e.Value = d.ToString("0.00");
    }
}

请帮我解决问题。

【问题讨论】:

  • 尝试单步执行代码,哪一行会抛出错误?
  • if (e.ColumnIndex == 5 && e.RowIndex != this.dataGridView1.NewRowIndex) { double d = double.Parse(e.Value.ToString()); e.Value = d.ToString("0.00"); } 此行正在生成错误。或建议我解决我的问题的任何其他逻辑
  • 附上亲爱的 Poul Bak 错误短屏

标签: c# winforms datagridview


【解决方案1】:

试试这个:

double d = (double)e.Value;

将 e.value 转换为双精度值。

本页:https://msdn.microsoft.com/en-us/library/system.windows.forms.converteventargs.value(v=vs.110).aspx

建议您在访问值之前检查DesiredType 属性:

if(e.DesiredType != typeof(string)) return;

【讨论】:

  • 收到以下错误对我没有帮助。附加信息:指定的演员表无效。如果您为此目的尝试过,请提出任何其他逻辑
【解决方案2】:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{

    if (e.ColumnIndex == 0 && e.RowIndex != this.dataGridView1.NewRowIndex)
    {
        double d = double.Parse(e.Value.ToString());
        e.Value = d.ToString("0");
    }

    else
    {
        if (e.ColumnIndex == 2 && e.RowIndex == this.dataGridView1.NewRowIndex)
        {
            double precio = Convert.ToDouble("0");
            dataGridView1["Column7", e.RowIndex].Value = (precio.ToString());
        }
    }

}

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多