未选择DataGridViewRow时的System.NullReferenceException

时间:2018-01-15 19:35:50

标签: c# forms winforms datagridview datagrid

我的Windows窗体中有两个dataGridViews,每个gridview按钮都可以编辑单元格的内容。但是,当我启动我的应用程序时,我总是得到一个System.NullReferenceException当我没有先点击视图中的行

在我启动应用程序后,行被选中并变为蓝色: selected row

我在加载方法中设置了以下内容:

            dataGridView1.Rows[0].Selected = true;
            dataGridView2.Rows[0].Selected = true;

第二个DatagridView工作正常。我不知道为什么......

这是我的一个按钮的代码:

private void button2_Click(object sender, EventArgs e)
    {
        if (dataGridView1.SelectedRows.Count > 0)
        {
            int _selectedArticle_ID, _selectedArticle_ArtNr;
            string _selectedArticle_Artikel, _selectedArticle_Barcode;
            decimal _selectedArticle_einkaufsPreis, _selectedArticle_verkaufsPreis;

            _selectedArticle_ID = Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value);
            _selectedArticle_ArtNr = Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value);
            _selectedArticle_Artikel = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString();
            _selectedArticle_einkaufsPreis = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[3].Value);
            _selectedArticle_verkaufsPreis = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[4].Value);
            _selectedArticle_Barcode = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[5].Value.ToString();

            f3 = new Form3(); // (_selectedArticle_ID, _selectedArticle_Anz, _selectedArticle_ArtNr, _selectedArticle_Artikel, _selectedArticle_Preis, _selectedArticle_Barcode, this);
            f3.Show();
        }
    }

1 个答案:

答案 0 :(得分:0)

没有数据网格来检查所选行。因此,由于null值,此行会引发错误: j

如果dataGridView1仍然为null,你可以抛出类似if (dataGridView1.SelectedRows.Count > 0)的东西来检查并退出方法。