我将名为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:在获得值之前,我可以通过选择另一个单元格(与所关注的单元格不同)来解决此问题。但这不是我的解决方案
答案 0 :(得分:1)
在注释中,您使用的按钮不会使焦点移离网格,因此它仍处于编辑模式。像这样尝试:
MarksDGV1.EndEdit();
MessageBox.Show(MarksDGV1.Rows[0].Cells[1].Value.ToString());