예제 #1
0
        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();
        }