我是一名初学程序员,为我的学校在VS 2015 Professional中开发C#WinForms解决方案。
在我实现下面的代码之后,DataGridView第9列的信息会闪烁并导致表单上的字段变灰。只有在我在屏幕上拖动并移动表单后才能正确显示。
请您查看我的代码,看看问题是什么?代码做我想要的,但我相信它可以完善。谢谢。我非常感谢您的时间和帮助。
private void alunos_detDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
decimal midtermGrade = Convert.ToInt32(this.alunos_detDataGridView.Rows[e.RowIndex].Cells[3].Value);
decimal finalGrade = Convert.ToInt32(this.alunos_detDataGridView.Rows[e.RowIndex].Cells[4].Value);
decimal oralGrade = Convert.ToInt32(this.alunos_detDataGridView.Rows[e.RowIndex].Cells[5].Value);
this.alunos_detDataGridView.Rows[e.RowIndex].Cells[9].Value = ((midtermGrade + finalGrade + oralGrade) / 3);
if (alunos_detDataGridView.CurrentRow.Cells[0].Value.ToString() != null)
{
if ((midtermGrade + finalGrade + oralGrade / 3) >= 60)
{
this.alunos_detDataGridView.Rows[e.RowIndex].Cells[10].Value = "Aprovado";
}
else
{
this.alunos_detDataGridView.Rows[e.RowIndex].Cells[10].Value = "Reprovado";
}
}
}
catch
{
}
}
答案 0 :(得分:1)
我解决了这个问题!我用 CellEndEdit 事件替换了 CellFormatting 事件,现在一切都恢复正常了!谢谢大家的反馈。 :)
答案 1 :(得分:0)
我觉得网格不断更新,也许它不会停止,直到你移动表格;因此从网格中移除焦点。我不确定没有看到整个代码或应用程序。在表单启动并闪烁后尝试在上面的代码中放置一个断点,看看它是否被反复击中。