private void EventLinker_ScoreUpdate(object sender, EventArgs e) { if (InvokeRequired) // En cas d'appel de cette fonction depuis un autre thread { Invoke(new EventLinker_ScoreUpdateDelegate(this.EventLinker_ScoreUpdate), sender, e); return; } ScoreUpdateEventArgs args = (ScoreUpdateEventArgs)e; // Make 4 spaces at the end of the score label for flame picture if (trainer.Parameters.Mode == AnswerMode.Normal) { if (args.TotalVerbs == 0) { scoreLbl.Text = "Score: 0 "; } else { scoreLbl.Text = "Score: " + trainer.Flames + " "; } if (trainer.Flames >= 20 | args.TotalVerbs == 0) { scoreLbl.ForeColor = Color.Black; } else if (trainer.Flames > 0) { scoreLbl.ForeColor = Color.DarkOrange; } else if (trainer.Flames <= 0) { scoreLbl.ForeColor = Color.Red; } } if (args.LastMistakesNumber == -1) { scoreStateLbl.Text = ""; } else if (args.LastMistakesNumber == 0) { scoreStateLbl.Text = "Well done!"; scoreStateLbl.Font = new Font(new FontFamily("Segoe UI Semibold"), 9.75f); scoreStateLbl.ForeColor = Color.Green; } else { if (args.RemainingChances > -1) { scoreStateLbl.Text = args.LastMistakesNumber + " verb form" + StringTool.AddSOrNot(args.LastMistakesNumber) + " " + StringTool.IsOrAre(args.LastMistakesNumber) + " incorrect. (" + args.RemainingChances + " chance" + StringTool.AddSOrNot(args.RemainingChances) + " left)"; scoreStateLbl.Font = new Font(new FontFamily("Segoe UI Semibold"), 9.75f); scoreStateLbl.ForeColor = Color.Red; } else { scoreStateLbl.Text = args.LastMistakesNumber + " verb form" + StringTool.AddSOrNot(args.LastMistakesNumber) + " " + StringTool.IsOrAre(args.LastMistakesNumber) + " incorrect."; scoreStateLbl.Font = new Font(new FontFamily("Segoe UI Semibold"), 9.75f); scoreStateLbl.ForeColor = Color.Red; } } }