C# - DataGridView列中的信息闪烁

时间:2016-10-12 03:22:05

标签: c# datagridview

我是一名初学程序员,为我的学校在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
     {
     }


 } 

2 个答案:

答案 0 :(得分:1)

我解决了这个问题!我用 CellEndEdit 事件替换了 CellFormatting 事件,现在一切都恢复正常了!谢谢大家的反馈。 :)

答案 1 :(得分:0)

我觉得网格不断更新,也许它不会停止,直到你移动表格;因此从网格中移除焦点。我不确定没有看到整个代码或应用程序。在表单启动并闪烁后尝试在上面的代码中放置一个断点,看看它是否被反复击中。