c# - 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:我能够通过选择另一个单元格来解决这个问题 - 与我所关心的单元格不同 - 在我获得值之前。但这不是我的解决方案
解决方案
从评论中,您使用的按钮不会将焦点从网格中移开,因此它仍处于编辑模式。试试这样:
MarksDGV1.EndEdit();
MessageBox.Show(MarksDGV1.Rows[0].Cells[1].Value.ToString());
推荐阅读
- python - Django bool 字段说明默认为 False,null 为 True
- python - 如何使用 matplotlib.pyplot 连接散点
- python - 在没有显示的情况下运行可执行的 PyQt5 python 程序
- python - 如何使用 curses 模块打印 Pi 符号
- c# - 如何隐藏 Datagridview winform 应用程序中的列?
- python - 尝试使用 eval() 在 Python 中获取关键字参数时出现 SyntaxError
- java - 如何将列表视图中我从 Firebase 实时数据库调用的数据移动到 android studio 中的另一个活动?
- arrays - 通过使用 Spring Boot 插入来自循环的所有数据来创建 JSON 数组
- angular - Angular Elements:如何将模板传递给组件?
- loops - 在无痛脚本中循环子属性