/// <summary> /// Логика по созданию звезды здесь. Здесь считываются введенные пользователем данные, преобразуются в нужный тип и отправляются в конструктор модели звезды. Готовая звезда отдается родительской форме, а исключения отлавливаются и показываются пользователю в виде понятного текста. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ButtonCreateStar_Click(object sender, EventArgs e) { try { var largeRadius = double.Parse(TextBoxLargeRadius.Text); var smallRadius = double.Parse(TextBoxSmallRadius.Text); var centerPointX = float.Parse(TextBoxCenterX.Text); var centerPointY = float.Parse(TextBoxCenterY.Text); var degree = double.Parse(TextBoxDegree.Text); var raysNumber = int.Parse(TextBoxRaysCount.Text); var star = new StarModel(largeRadius, smallRadius, new PointF(centerPointX, centerPointY), degree, raysNumber); var starViewModel = new StarViewModel(star, StarColor); this.StarCreated?.Invoke(starViewModel); this.Close(); } catch (FormatException) { MessageBox.Show("Вы использовали недопустимые данные для ввода. Для ввода большего радиуса, малого радиуса, центральных точек и угла допускаются числа с плавающей запятой (целая часть от дробной разделяется запятой), а для количества лучей допускаются только целые числа."); } catch (Exception ex) { MessageBox.Show($"Ошибка! {ex.Message}"); } }
/// <summary> /// Удаление звезды из коллекции /// </summary> /// <param name="star"></param> private void StarDeleteForm_StarSelected(StarViewModel star) { stars.Remove(star); DrawStars(); }
/// <summary> /// Добавление звезды в коллекцию /// </summary> /// <param name="star"></param> private void StarCreatorForm_StarCreated(StarViewModel star) { stars.Add(star); DrawStars(); }