DGV不会更新价值

时间:2018-12-27 14:54:01

标签: c# datagridview

我将名为MarksDGV1的DGV插入我的应用程序,而其中的每个单元格的默认值为“ 0”。因此,在用户更改其中一些的值之后,即使尝试正确显示,当我尝试达到上次编辑的单元格的值时,该值仍为0,而不是用户键入的值 (请注意:未选中的单元格-不会以蓝色显示-正确显示值) 我该如何解决?

这是我的代码:

MarksDGV1.Refresh();
MessageBox.Show(MarksDGV1.Rows[0].Cells[1].Value.ToString());

这就是我构建DGV的方式:

        using (DataGridViewTextBoxColumn tmp = new DataGridViewTextBoxColumn())
        {
            tmp.Width = 90;
            tmp.ReadOnly = true;
            tmp.HeaderText = "פרק מס.";
            MarksDGV1.Columns.Add(tmp);
        }
        for (int i = 1; i <= 30; i++)
        {
            using (DataGridViewTextBoxColumn tmp = new DataGridViewTextBoxColumn())
            {
                tmp.Width = 50;
                tmp.HeaderText = "שאלה מס." + i;
                MarksDGV1.Columns.Add(tmp);
            }
        }
        for (int i = 0; i < 8; i++)
        {
            using (DataGridViewRow tmp = (DataGridViewRow)MarksDGV1.Rows[i].Clone())
            {
                tmp.Cells[0].Value = i + 1;
                for (int j = 1; j <= 30; j++)
                {
                    tmp.Cells[j].Value = 0;
                    //tmp.Cells[j].Value = CurrentExam.Psy[i].Answers[j - 1];
                }
                MarksDGV1.Rows.Add(tmp);
            }
        }

更新:我尝试输入DataGridView.Refresh();,但没有成功! Update2:在获得值之前,我可以通过选择另一个单元格(与所关注的单元格不同)来解决此问题。但这不是我的解决方案

1 个答案:

答案 0 :(得分:1)

在注释中,您使用的按钮不会使焦点移离网格,因此它仍处于编辑模式。像这样尝试:

MarksDGV1.EndEdit();
MessageBox.Show(MarksDGV1.Rows[0].Cells[1].Value.ToString());