首页 > 解决方案 > DGV 不更新值

问题描述

我在我的应用程序中调用了一个 DGV MarksDGV1,而其中的每个单元格的默认值都是“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();但没有用!更新 2:我能够通过选择另一个单元格来解决这个问题 - 与我所关心的单元格不同 - 在我获得值之前。但这不是我的解决方案

标签: c#datagridview

解决方案


从评论中,您使用的按钮不会将焦点从网格中移开,因此它仍处于编辑模式。试试这样:

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

推荐阅读