Beispiel #1
0
        public FormHello()
        {
            InitializeComponent();

            new TestInizializator().Initialize(this);

            if (!Courses.Get().Contains("<Без предмета>"))
            {
                Courses.Get().Add("<Без предмета>");
            }

            comboBoxCourseFilter.Items.AddRange(Courses.Get().ToArray());

            ListPanelsTestsOnPanel = new List <Panel>();

            try
            {
                //Подгрузка тестов
                var testLoader = new TestLoader();

                var listOfLoadTests = testLoader.LoadTestsFromFolder(new DynamicParams().GetPath());

                foreach (Wrappers.Test test in listOfLoadTests.TestList)
                {
                    ListTestsRef.Add(test);

                    TestOperations = new Panel();

                    _linkLabelTestNew      = new Label();
                    _buttonTestDeleteNew   = new Button();
                    _buttonTestOpenNew     = new Button();
                    _buttonTestMarksNew    = new Button();
                    _buttonTestDownloadDoc = new Button();

                    TestOperations.BackColor = SystemColors.ControlLight;
                    TestOperations.Controls.Add(_linkLabelTestNew);
                    TestOperations.Controls.Add(_buttonTestOpenNew);
                    TestOperations.Controls.Add(_buttonTestMarksNew);
                    TestOperations.Controls.Add(_buttonTestDownloadDoc);
                    TestOperations.Controls.Add(_buttonTestDeleteNew);
                    TestOperations.Name = "panelTestInTestsList" + ListTestsRef.Count;
                    TestOperations.Size = new Size(1100, 51);
                    TestOperations.Tag  = "panelTestInTests";


                    FormChooseTestName formChooseTestName =
                        new FormChooseTestName(this, ListPanelsTestsOnPanel.Count)
                    {
                        startName = test.Name
                    };
                    formChooseTestName.Controls.Find("textBoxUserChooseTestName", true)[0].Text = test.Name;
                    formChooseTestName.Controls.Find("comboBoxCourse", true)[0].Text            = test.Course;
                    formChooseTestName.Controls.Find("textBoxMark5", true)[0].Text = test.Marks.Excellent.ToString();
                    formChooseTestName.Controls.Find("textBoxMark4", true)[0].Text = test.Marks.Good.ToString();
                    formChooseTestName.Controls.Find("textBoxMark3", true)[0].Text = test.Marks.Satisfactory.ToString();
                    formChooseTestName.Tag           = ListPanelsTestsOnPanel.Count;
                    ListMarksAndName[TestOperations] = formChooseTestName;

                    _linkLabelTestNew.AutoSize  = true;
                    _linkLabelTestNew.Font      = new Font("Century Gothic", 11.25F);
                    _linkLabelTestNew.Location  = new Point(3, 15);
                    _linkLabelTestNew.Name      = "linkLabelTest" + ListPanelsTestsOnPanel.Count;
                    _linkLabelTestNew.Size      = new Size(146, 20);
                    _linkLabelTestNew.Text      = test.Name;
                    _linkLabelTestNew.TabStop   = true;
                    _linkLabelTestNew.Tag       = ListPanelsTestsOnPanel.Count;
                    _linkLabelTestNew.TextAlign = ContentAlignment.MiddleCenter;

                    _buttonTestOpenNew.FlatStyle = FlatStyle.Flat;
                    _buttonTestOpenNew.Font      = new Font("Century Gothic", 11.25F);
                    _buttonTestOpenNew.Location  = new Point(485, 5);
                    _buttonTestOpenNew.Name      = "buttonTestOpen" + ListPanelsTestsOnPanel.Count;
                    _buttonTestOpenNew.Size      = new Size(150, 40);
                    _buttonTestOpenNew.Text      = "Открыть тест";
                    _buttonTestOpenNew.UseVisualStyleBackColor = true;
                    _buttonTestOpenNew.Tag       = ListPanelsTestsOnPanel.Count;
                    _buttonTestOpenNew.TextAlign = ContentAlignment.MiddleCenter;

                    _buttonTestMarksNew.FlatStyle = FlatStyle.Flat;
                    _buttonTestMarksNew.Font      = new Font("Century Gothic", 11.25F);
                    _buttonTestMarksNew.Location  = new Point(640, 5);
                    _buttonTestMarksNew.Name      = "buttonTestMarks" + ListPanelsTestsOnPanel.Count;
                    _buttonTestMarksNew.Size      = new Size(140, 40);
                    _buttonTestMarksNew.Text      = "Параметры";
                    _buttonTestMarksNew.UseVisualStyleBackColor = true;
                    _buttonTestMarksNew.Tag       = ListPanelsTestsOnPanel.Count;
                    _buttonTestMarksNew.TextAlign = ContentAlignment.MiddleCenter;

                    _buttonTestDownloadDoc.FlatStyle = FlatStyle.Flat;
                    _buttonTestDownloadDoc.Font      = new Font("Century Gothic", 11.25F);
                    _buttonTestDownloadDoc.Location  = new Point(785, 5);
                    _buttonTestDownloadDoc.Name      = "buttonTestDownloadDoc" + ListPanelsTestsOnPanel.Count;
                    _buttonTestDownloadDoc.Size      = new Size(150, 40);
                    _buttonTestDownloadDoc.Text      = "Скачать в Word";
                    _buttonTestDownloadDoc.UseVisualStyleBackColor = true;
                    _buttonTestDownloadDoc.Enabled   = true;
                    _buttonTestDownloadDoc.Tag       = ListPanelsTestsOnPanel.Count;
                    _buttonTestDownloadDoc.TextAlign = ContentAlignment.MiddleCenter;

                    _buttonTestDeleteNew.FlatStyle = FlatStyle.Flat;
                    _buttonTestDeleteNew.Font      = new Font("Century Gothic", 11.25F);
                    _buttonTestDeleteNew.Location  = new Point(940, 5);
                    _buttonTestDeleteNew.Name      = "buttonTestDelete" + ListPanelsTestsOnPanel.Count;
                    _buttonTestDeleteNew.Size      = new Size(150, 40);
                    _buttonTestDeleteNew.Text      = "Удалить";
                    _buttonTestDeleteNew.UseVisualStyleBackColor = true;
                    _buttonTestDeleteNew.Enabled = true;
                    _buttonTestDeleteNew.Tag     = ListPanelsTestsOnPanel.Count;


                    TestNameAndMarks.Add(test.Name,
                                         new List <int> {
                        test.Marks.Excellent, test.Marks.Good, test.Marks.Satisfactory
                    });

                    var peremTest = new Test(this, test.Name, TestNameAndMarks[test.Name], test.Course);
                    ListTests[TestOperations] = peremTest;


                    ListPanelsTestsOnPanel.Add(TestOperations);
                    panelMain.Controls.Add(TestOperations);


                    _buttonTestOpenNew.Click     += OpenCurrentTest;
                    _buttonTestMarksNew.Click    += TestCurrentMarks;
                    _buttonTestDownloadDoc.Click += TestCurrentDownloadDoc;
                    _buttonTestDeleteNew.Click   += TestCurrentDelete;

                    if (ListPanelsTestsOnPanel.Count > 0)
                    {
                        ListTests[TestOperations].Controls.Find("panelMiddle", true)[0].Controls
                        .Remove(
                            ListTests[TestOperations].Controls.Find("Задание №1", true)[0]);
                    }
                    //Добавление элементов в тест
                    InitTest(ListTestsRef[ListPanelsTestsOnPanel.Count - 1],
                             ListTests[TestOperations]);
                }
                Redistribution(ListPanelsTestsOnPanel);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            _formChooseVzvod = new FormChooseVzvod(this);
            _formSettings    = new FormSettings();


            MinimumSize = Size;
            MaximumSize = Size;
        }
Beispiel #2
0
 private void InitTest(Test objectsInCurrentTest)
 {
 }
Beispiel #3
0
        private void InitTest(Wrappers.Test fromLoadTest, Test toTest)
        {
            List <Task> listTasksInTest = new List <Task> ();
            Dictionary <Task, List <Title> > rtbInTask             = new Dictionary <Task, List <Title> > ();
            Dictionary <Task, List <PictureBoxScalable> > pbInTask = new Dictionary <Task, List <PictureBoxScalable> > ();
            Dictionary <Task, List <TextContainer> >      tbInTask = new Dictionary <Task, List <TextContainer> > ();
            List <Panel> listPanelTasks = new List <Panel> ();

            //Dictionary<Task, List<Label>> _listTBLabels = new Dictionary<Task, List<Label>> ();

            foreach (Task paneltask in fromLoadTest.Tasks)
            {
                //int textBoxNumber = 0;
                rtbInTask.Add(paneltask, new List <Title>());
                pbInTask.Add(paneltask, new List <PictureBoxScalable>());
                tbInTask.Add(paneltask, new List <TextContainer>());
                //_listTBLabels.Add(paneltask, new List<Label> ());

                listTasksInTest.Add(paneltask);

                foreach (TaskElement taskElem in paneltask.TaskElements)
                {
                    if (taskElem.Type.Equals("RichTextBox"))
                    {
                        Title bufTitle = new Title(taskElem.Name)
                        {
                            Instance =
                            {
                                Height   = taskElem.Height,
                                Width    = taskElem.Width,
                                Location = taskElem.Point,
                                Text     = taskElem.Text,
                                Font     = new Font("Microsoft Sans Serif", 15.75F, FontStyle.Regular, GraphicsUnit.Point, 204),
                            }
                        };
                        rtbInTask[paneltask].Add(bufTitle);
                    }

                    if (taskElem.Type.Equals("PictureBox"))
                    {
                        using (var stream = File.Open(new DynamicParams().GetPath() + "\\" + taskElem.Media, FileMode.Open))
                        {
                            var ms = new MemoryStream((int)stream.Length);
                            stream.CopyTo(ms);
                            ms.Position = 0;
                            PictureBoxScalable bufPbs = new PictureBoxScalable(taskElem.Name)
                            {
                                Instance =
                                {
                                    Size     = new Size(taskElem.Width, taskElem.Height),
                                    Image    = new Bitmap(ms),
                                    Location = taskElem.Point
                                }
                            };
                            pbInTask[paneltask].Add(bufPbs);
                        }
                    }

                    if (taskElem.Type.Equals("TextBox"))
                    {
                        TextContainer bufTc = new TextContainer(taskElem.Name)
                        {
                            Instance =
                            {
                                Height   = taskElem.Height,
                                Width    = taskElem.Width,
                                Location = taskElem.Point,
                                Text     = taskElem.Answer,
                                TabIndex = taskElem.Index
                            }
                        };
                        tbInTask[paneltask].Insert(0, bufTc);
                    }
                }
            }

            foreach (Task task in listTasksInTest)
            {
                var indexLabel = 1;
                var buf1       = new Panel
                {
                    BackColor = SystemColors.ControlDark,
                    Location  = new Point(0, 0),
                    Name      = task.Name,
                    Size      = new Size(1110, 618),
                    TabIndex  = 0
                };
                listPanelTasks.Add(buf1);

                //Добавление панели с заданием

                var panelQestionFoo = new Panel
                {
                    BackColor  = SystemColors.GradientInactiveCaption,
                    Location   = new Point(5, 5),
                    Name       = "panelQuestion",
                    Size       = new Size(761, 610),
                    TabIndex   = 0,
                    AutoScroll = true,
                    AllowDrop  = true
                };

                panelQestionFoo.DragEnter += toTest.panelQuestion_DragEnter;
                panelQestionFoo.DragDrop  += toTest.panelQuestion_DragDrop;

                toTest.createPasteFunc(panelQestionFoo);

                foreach (var pb in pbInTask[task])
                {
                    pb.setParent(panelQestionFoo);
                    panelQestionFoo.Controls.Add(pb.Instance);
                    ControlMover.Add(pb.Instance);
                    pb.Instance.SizeMode = PictureBoxSizeMode.StretchImage;
                }



                int j = tbInTask[task].Count;
                foreach (TextContainer tb in tbInTask[task])
                {
                    tb.Instance.Name = "TextBox, Text: " + j;
                    tb.setParent(panelQestionFoo);
                    tb.AddAnswerTitle(tb.Instance.TabIndex);
                    panelQestionFoo.Controls.Add(tb.Instance);
                    tb.Instance.BringToFront();
                    ControlMover.Add(tb.Instance);

                    indexLabel++;


                    TbList.Add(tb.Instance);
                    j--;
                }

                foreach (Title rtb in rtbInTask[task])
                {
                    rtb.setParent(panelQestionFoo);
                    panelQestionFoo.Controls.Add(rtb.Instance);
                    ControlMover.Add(rtb.Instance);
                    rtb.Instance.BringToFront();
                }



                listPanelTasks[listPanelTasks.Count - 1].Controls.Add(panelQestionFoo);
                toTest.Controls.Find("panelMiddle", true)[0].Controls.Add(listPanelTasks[listPanelTasks.Count - 1]);

                PanelWrapper bufPw = new PanelWrapper
                {
                    Entity       = listPanelTasks[listPanelTasks.Count - 1],
                    Identifier   = indexLabel,
                    PictureIndex = pbInTask[task].Count
                };
                indexLabel++;

                var bufLl = toTest.createLinkLabel(listPanelTasks.Count - 1);

                bufPw.Entity.Name = bufLl.Text;

                toTest.ListPanelsTasks.Add(bufLl, bufPw);
                toTest.LinkLabelButtonDel.Add(bufLl, toTest.createButtonDelTask(listPanelTasks.Count - 1));


                PanelWrapper bufPw2 = new PanelWrapper {
                    Entity = panelQestionFoo
                };
                toTest._currentPanelQuestion = bufPw2;
            }


            Control currentPanelListOfTasks = toTest.Controls.Find("panelListOfTasks", true)[0];


            toTest.ListPanelsTasks.Remove((LinkLabel)currentPanelListOfTasks.Controls[1]);
            toTest.LinkLabelButtonDel.Remove((LinkLabel)currentPanelListOfTasks.Controls[1]);

            currentPanelListOfTasks.Controls.Remove(currentPanelListOfTasks.Controls[1]);
            currentPanelListOfTasks.Controls.Remove(currentPanelListOfTasks.Controls[1]);

            toTest._currentTask = toTest.ListPanelsTasks[(LinkLabel)(toTest.Controls.Find("panelListOfTasks", true)[0].Controls[1])];
            toTest._currentPanelQuestion.Entity = (Panel)toTest._currentTask.Entity.Controls.Find("panelQuestion", true)[0];
        }