private LinkLabel AddPicture(UrlDescription picture) { LinkLabel pictureLabel; if (picturesLinksLabels.Count > 0) { pictureLabel = ExampleImageLinkLabel.Clone(); } else { pictureLabel = ExampleImageLinkLabel; } pictureLabel.Text = picture.Description; pictureLabel.Visible = true; pictureLabel.Links.Clear(); var link = new LinkLabel.Link(0, picture.Description.Length, picture.Url); link.Description = picture.Description; pictureLabel.Links.Add(link); pictureLabel.LinkClicked += PictureLinkLabel_LinkClicked; picturesLinksLabels.Add(pictureLabel); if (PicturesPanel.Controls.Contains(pictureLabel) == false) { PicturesPanel.Controls.Add(pictureLabel); } pictureLabel.BringToFront(); return(pictureLabel); }
private void GenerateQuestionsViewsControls() { decimal system = questions.Sum(question => question.Points); // максимальная оценка foreach (var question in questions) { var pictures = new List <UrlDescription>(); var optionsTexts = new List <string>(); var questionText = HelpClass.HtmlToSmartPlainText(question.HtmlText); var points = HelpClass.PointsToSystem(question.Points, system, 12); var options = showOnlyAnswers ? question.Answers : question.Options; if (question.ImageUrl != null) { var picture = new UrlDescription(question.ImageUrl, "Рис. вопроса"); pictures.Add(picture); } if (options != null) { for (int i = 0; i < options.Count; i++) { var option = options[i]; var optionText = HelpClass.HtmlToSmartPlainText(option.HtmlText); if (option.ImageUrl != null) { var pictureBaseText = showOnlyAnswers ? "Рис. ответа" : "Рис. варианта"; var pictureDescription = options.Count > 1 ? $"{pictureBaseText} {i + 1}" : pictureBaseText; var picture = new UrlDescription(option.ImageUrl, pictureDescription); pictures.Add(picture); if (string.IsNullOrWhiteSpace(optionText)) { optionText = $"({pictureDescription})"; } } optionsTexts.Add(optionText); } } var control = new QuestionView(questionText, Math.Round(points, 2), optionsTexts, pictures) { OptionsAreAnswers = showOnlyAnswers, Dock = DockStyle.Top }; control.OnControlStateChanged += OnQuestionViewControlStateChanged; questionsViewControls.Add(control); QuestionsViewPanel.Controls.Add(control); control.BringToFront(); } }