首页 > 解决方案 > 如果 DataGridView 单元格中的值为 NaN,如何防止崩溃,或者限制用户直到单元格中有值?

问题描述

我有一个 DataGridview,其中第一列用户输入一个值,第二列计算一个答案,然后将两者都绘制在图表上。

目前,第二列中的值是在按下“计算按钮”后计算的。

但是,如果用户在第一列的第一个单元格中输入任何值之前按下按钮,则第二列单元格中的计算值会显示为“NaN”,并且当下面的代码运行或如果代码下面删除了“生成图表按钮”处的崩溃?

我是 C# 和整体编程的新手,所以我不确定如何防止这种情况发生,也许通过验证以某种方式。

这是我目前尝试过的(下面的代码),但是我得到一个“System.ArgumentOutOfRangeException:'索引超出范围。”

 foreach (DataGridViewRow rw in this.dataGridView3.Rows)
            {
                for (int G = 0; G < rw.Cells.Count; G++)
                {
                    if (rw.Cells[G].Value == null || rw.Cells[G].Value == DBNull.Value || String.IsNullOrWhiteSpace(rw.Cells[G].Value.ToString()) || double.IsNaN(Convert.ToDouble(dataGridView1.Rows[G].Cells[1].Value)))
                    {
                        MessageBox.Show("Please compute Vulnerabiltiy Curve Points!");
                    }
                    else
                    {

                        chart1.Series["V-curve"].Points.AddXY(dataGridView3.Rows[G].Cells[1].Value, dataGridView3.Rows[G].Cells[0].Value);

                    }

                }
            }

标签: c#validationdatagridviewwindows-forms-designer

解决方案


推荐阅读