Пример #1
0
        private void QuestionsEditor_Load(object sender, EventArgs e)
        {
            SuspendDrawing(this);
            QuestionControls controls = new QuestionControls();

            controls.label   = lbl_qn1; controls.question = rtb_question1;
            controls.optiona = rtb_optiona1; controls.optionb = rtb_optionb1;
            controls.optionc = rtb_optionc1; controls.optiond = rtb_optiond1;
            controls.selecta = radio_a; controls.selectb = radio_b;
            controls.selectc = radio_c; controls.selectd = radio_d;
            controls.panel   = pnl_question;
            m_questionControls.Add(controls);

            pnl_passage        = pnl_question.Clone();
            rtb_passage        = rtb_question1.Clone();
            rtb_passage.Parent = pnl_passage;
            rtb_passage.Show();
            pnl_passage.Parent = pnl_holder;
            lbl_passage        = new Label();
            lbl_passage.Show();
            lbl_passage.Text   = PassageTitle;
            lbl_passage.Left   = 5;
            lbl_passage.Width  = pnl_passage.Width;
            lbl_passage.Parent = pnl_passage;
            lbl_passage.Font   = new Font(pnl_passage.Font, FontStyle.Bold);
            pnl_passage.Hide();

            lbl_groupA.Hide();
            lbl_groupB.Hide();

            pnl_title.Visible = pnl_question.Visible = true;

            for (int i = 1; i < m_questionsPerPage; ++i)
            {
                controls          = new QuestionControls();
                controls.label    = lbl_qn1.Clone();
                controls.question = rtb_question1.Clone();
                controls.optiona  = rtb_optiona1.Clone();
                controls.optionb  = rtb_optionb1.Clone();
                controls.optionc  = rtb_optionc1.Clone();
                controls.optiond  = rtb_optiond1.Clone();
                controls.selecta  = radio_a.Clone();
                controls.selectb  = radio_b.Clone();
                controls.selectc  = radio_c.Clone();
                controls.selectd  = radio_d.Clone();
                controls.panel    = pnl_question.Clone();


                controls.ChangeParent();

                controls.question.Tag = "qn" + i;
                controls.optiona.Tag  = "oa" + i;
                controls.optionb.Tag  = "ob" + i;
                controls.optionc.Tag  = "oc" + i;
                controls.optiond.Tag  = "od" + i;

                controls.selecta.Tag = controls.selectb.Tag = controls.selectc.Tag = controls.selectd.Tag = i.ToString();

                m_questionControls.Add(controls);
            }

            rtb_passage.ContentsResized += new ContentsResizedEventHandler(content_resized);
            foreach (QuestionControls c in m_questionControls)
            {
                c.question.ContentsResized += new ContentsResizedEventHandler(content_resized);
                c.optiona.ContentsResized  += new ContentsResizedEventHandler(content_resized);
                c.optionb.ContentsResized  += new ContentsResizedEventHandler(content_resized);
                c.optionc.ContentsResized  += new ContentsResizedEventHandler(content_resized);
                c.optiond.ContentsResized  += new ContentsResizedEventHandler(content_resized);

                c.question.Text = c.optiona.Text = c.optionb.Text = c.optionc.Text = c.optiond.Text = "\n";
                c.question.Text = c.optiona.Text = c.optionb.Text = c.optionc.Text = c.optiond.Text = "";

                c.question.GotFocus += new EventHandler(delegate(Object o, EventArgs a)
                {
                    c.label.Focus();
                });

                c.optiona.GotFocus += new EventHandler(delegate(Object o, EventArgs a)
                {
                    c.selecta.Focus();
                    c.selecta.Checked = true;
                });
                c.optionb.GotFocus += new EventHandler(delegate(Object o, EventArgs a)
                {
                    c.selectb.Focus();
                    c.selectb.Checked = true;
                });
                c.optionc.GotFocus += new EventHandler(delegate(Object o, EventArgs a)
                {
                    c.selectc.Focus();
                    c.selectc.Checked = true;
                });
                c.optiond.GotFocus += new EventHandler(delegate(Object o, EventArgs a)
                {
                    c.selectd.Focus();
                    c.selectd.Checked = true;
                });

                EventHandler onchecked = new EventHandler(delegate(Object o, EventArgs a)
                {
                    RadioButton r = (RadioButton)o;
                    String tag    = r.Tag.ToString();
                    int qn        = Int32.Parse(tag);
                    m_answers[m_currentPage * m_questionsPerPage + qn] = m_questionControls[qn].GetSelected();
                });
                c.selecta.CheckedChanged += onchecked;
                c.selectb.CheckedChanged += onchecked;
                c.selectc.CheckedChanged += onchecked;
                c.selectd.CheckedChanged += onchecked;
            }

            RefreshQuestions();
            RefreshControls();

            LoadSets();

            for (int i = 0; i < m_sets.Length; ++i)
            {
                ToolStripItem item = menu_item_change_set.DropDownItems.Add("Set " + (i + 1));
                item.Tag    = i;
                item.Click += new EventHandler(set_changed);
            }

            m_timer                     = new System.Timers.Timer(1000);
            m_timer.Elapsed            += new System.Timers.ElapsedEventHandler(time_elapsed);
            m_timer.SynchronizingObject = this;

            pnl_holder.Hide();
            pnl_bottom.Hide();
            m_loginscreen          = new FormLogIn(this);
            m_loginscreen.TopLevel = false;
            m_loginscreen.Parent   = this;
            m_loginscreen.Show();
            ResumeDrawing(this);
        }