private void AddQuestion2Interface(Quest question2Add) { //создаем usercontrol для вопроса var pn = new QuestPanel(); //строим его pn.Build(_questionnaire, question2Add); //подписываемся на события pn.QuestionnaireListChanged += ProcessQuestionListAction; //перестриваем интерфейс, если изменился список вопросов pn.Changed += () => { _changed = true; //выставлем флажок изменения UpdateInterface(); }; pnMain.Controls.Add(pn);//добавляем на главную панель }
private void Build() { //создаем хелпер отрисовки, останавливаем отрисовку var helper = new ControlHelper(pnMain); //очищаем центральную панель pnMain.Controls.Clear(); //создаем контролы для каждого вопроса foreach (var quest in questionnaire) { //создаем usercontrol для вопроса var pn = new QuestPanel(); //строим его pn.Build(questionnaire, quest); //подписываемся на события pn.QuestionnaireListChanged += () => { changed = true;//выставлем флажок изменения Build(); }; //перестриваем интерфейс, если изменился список вопросов pn.Changed += () => { changed = true; //выставлем флажок изменения UpdateInterface(); }; pnMain.Controls.Add(pn);//добавляем на главную панель } //обновляем интерфейс UpdateInterface(); //восстанавливаем отрисовку helper.ResumeDrawing(); }