private void DisplayQuestion(Question q) { anyQuestionLoaded = true; if (q == null) { anyQuestionLoaded = false; q = new Question(false); } mainErrorProvider.Clear(); textBoxQuestionText.Text = q.Text; checkBoxMultiChoice.Checked = q.IsMultipleChoice; panelAnswerContainer.Controls.Clear(); foreach (Answer a in q.Answers) { var singleAnswer = new SingleAnswerControl(a.Text, a.IsRight); singleAnswer.Top = singleAnswer.Height * q.Answers.IndexOf(a); singleAnswer.Width = panelAnswerContainer.Width - 10; singleAnswer.Anchor = ((System.Windows.Forms.AnchorStyles)(((AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top)))); singleAnswer.RemoveAnswer += SingleAnswer_RemoveAnswer; panelAnswerContainer.Controls.Add(singleAnswer); } try { panelAnswerContainer.ScrollControlIntoView(panelAnswerContainer.Controls[panelAnswerContainer.Controls.Count - 1]); } catch { } if (anyQuestionLoaded && !ValidateSingleQuestion(GetCurrentQuestion())) { return; } }
private bool ValidateSingleQuestion(Question theQuestion) { // Question theQuestion = GetCurrentQuestion(); mainErrorProvider.Clear(); if (theQuestion == null) { return(true); } bool isValid = true; int rightAnswers = 0; foreach (Answer answ in theQuestion.Answers) { if (answ.IsRight) { rightAnswers++; } } if (rightAnswers == 0) { mainErrorProvider.SetError(labelOdpowiedzi, "Przynajmniej jedna odpowiedź musi być poprawna"); isValid = false; } if (!theQuestion.IsMultipleChoice && rightAnswers > 1) { mainErrorProvider.SetError(labelOdpowiedzi, "Tylko jedna odpowiedź może być poprawna"); isValid = false; } if (textBoxQuestionText.Text.Length <= 0) { mainErrorProvider.SetError(textBoxQuestionText, "To pole nie może być puste"); isValid = false; } if (textBoxQuestionText.Text == Question.DefaultText) { mainErrorProvider.SetError(textBoxQuestionText, "Hmm.. ktoś chyba zapomniał tu coś wpisać"); isValid = false; } foreach (Control c in panelAnswerContainer.Controls) { if (!(c is SingleAnswerControl)) { continue; } SingleAnswerControl a = c as SingleAnswerControl; if (!a.ValidateControl()) { isValid = false; } } return(isValid); }