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);
        }