Exemple #1
0
        private void AddShapeButton_Click(object sender, EventArgs e)
        {
            if (ShapeTypeCombo.SelectedItem == null)
            {
                MessageBox.Show(@"Please select a shape to add", @"Shape Type Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            if (string.IsNullOrEmpty(ShapeWidth.Text))
            {
                MessageBox.Show(@"Please enter a width", @"Width Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            if (!ShapeWidth.Text.All(char.IsDigit))
            {
                MessageBox.Show(@"Please enter a numeric value for the width", @"Width Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            if (string.IsNullOrEmpty(ShapeHeight.Text))
            {
                MessageBox.Show(@"Please enter a height", @"Height Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            var width  = Convert.ToInt32(ShapeWidth.Text);
            var height = Convert.ToInt32(ShapeHeight.Text);

            if (width < 10 || width > 100)
            {
                MessageBox.Show(@"Please enter a width between 10 and 100", @"Width Incorrect", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            if (height < 10 || height > 100)
            {
                MessageBox.Show(@"Please enter a height between 10 and 100", @"Height Incorrect", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                return;
            }

            Rectangle r = CreateShape(ShapeTypeCombo.SelectedItem.ToString(), width, height);

            Rectangles.Add(r);

            Canvas.Controls.Add(new Panel
            {
                BorderStyle = BorderStyle.FixedSingle,
                Width       = r.GetWidth(),
                Height      = r.GetHeight(),
                Left        = r.Left,
                Top         = r.Top,
                BackColor   = Color.FromArgb(Random.Next(256), Random.Next(256), Random.Next(256))
            });
        }