/// <summary> /// Построение интерфейса для опросника /// </summary> public void Build() { //создаем хелпер отрисовки, останавливаем отрисовку var helper = new ControlHelper(pnAnswers); //очищаем панель ответов pnAnswers.Controls.Clear(); //отображаем уже отвеченные вопросы foreach (var answer in interview.PassedAnswers) { //создаем панель ответа var pn = new AnswerPanel(); //строим pn.Build(interviewManipulator, questionnaire.First(q => q.Id == answer.QuestId), answer, true); //добавляем на форму pn.Parent = pnAnswers; } //отображаем вопрос, на который нужно ответить if (interview.CurrentAnswer != null) { //создаем панель ответа var pn = new AnswerPanel(); //строим pn.Build(interviewManipulator, questionnaire.First(q => q.Id == interview.CurrentAnswer.QuestId), interview.CurrentAnswer, false); //добавляем на форму pn.Parent = pnAnswers; } //настриваем видимость кнопок btBack.Parent = interview.PassedAnswers.Count > 0 ? pnAnswers : null; btNext.Parent = interview.IsFinished ? null : pnAnswers; btFinish.Parent = interview.IsFinished ? pnAnswers : null; //восстанавливаем отрисовку helper.ResumeDrawing(); }
private void ProcessQuestionListAction(string questionPanelKey, UserPanelActionType actionType) { _changed = true;//выставлем флажок изменения if (actionType == UserPanelActionType.Add) { var question2Add = _questionnaire.First(q => q.Id.Equals(questionPanelKey)); AddQuestion2Interface(question2Add); return;//Дальше делать нечего } //создаем хелпер отрисовки, останавливаем отрисовку FlowPanelActionHelper.ProcessElements(questionPanelKey, actionType); }