Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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# 循环遍历datagridview中的所有单元格_C#_Graphics_Datagridview - Fatal编程技术网

C# 循环遍历datagridview中的所有单元格

C# 循环遍历datagridview中的所有单元格,c#,graphics,datagridview,C#,Graphics,Datagridview,这是我的代码: private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); Pen p = new Pen(Brushes.Blue); foreach (DataGridViewRow dr in dataGridView1.Rows) { float p1x = float

这是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        Graphics g = this.CreateGraphics();
        Pen p = new Pen(Brushes.Blue);
        foreach (DataGridViewRow dr in dataGridView1.Rows)
        {
            float p1x = float.Parse(dr.Cells["p1x"].Value.ToString());
            float p1y = float.Parse(dr.Cells["p1y"].Value.ToString());
            float p2x = float.Parse(dr.Cells["p2x"].Value.ToString());
            float p2y = float.Parse(dr.Cells["p2y"].Value.ToString());
            g.DrawEllipse(p, p1x, p1y, 10, 10);
            g.DrawEllipse(p, p2x, p2y, 10, 10);
            g.FillEllipse(Brushes.Black, p1x, p1y, 10, 10);
            g.FillEllipse(Brushes.Black, p2x, p2y, 10, 10);
            g.DrawLine(p, p1x, p1y, p2x, p2y);
        }
    }
在执行上述代码时,我得到运行时异常“对象引用未设置为对象的实例”
请帮助。

您的一个单元格很可能有空值,即

dr.Cells[“p1x”]。值==null


您不能在
null
上使用
ToString()
,因此会出现该错误。

那么,哪个对象是null?在其中插入一个断点,看看抛出哪一行,以及是否有任何变量为null。其中一个单元格值为null。@KingKing完全正确,先生,这是我刚刚发现的。如何在异常出现之前检测空单元格值?@RuchirSharma您可以使用一些
if
语句来检查它是否为
null
,也可以使用简短的语法:
(dr.Cells[“p1x”].value???“0”).ToString()