From 329ffa2e48db28534904e22fdeb909460c953f85 Mon Sep 17 00:00:00 2001 From: "a.puchkina" Date: Sat, 18 Nov 2023 23:36:59 +0400 Subject: [PATCH] =?UTF-8?q?5=20=D0=BB=D0=B0=D0=B1=D0=B0,=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82,=20=D0=BD=D0=BE=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B4=D0=BE=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BC=D0=B0=D0=BB=D1=8F=D1=81=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AirplaneWithRadar/DrawningAirplane.cs | 5 + .../AirplaneWithRadar/EntityAirplane.cs | 4 + .../EntityAirplaneWithRadar.cs | 4 + .../FormAirplaneCollection.cs | 58 +++++- .../FormAirplaneConfig.Designer.cs | 171 +++++++++++------- .../AirplaneWithRadar/FormAirplaneConfig.cs | 70 ++++++- 6 files changed, 238 insertions(+), 74 deletions(-) diff --git a/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs b/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs index 08e9c39..f9338bf 100644 --- a/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs +++ b/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs @@ -229,5 +229,10 @@ namespace AirplaneWithRadar.DrawningObjects g.DrawLine(penBlack, new Point(_startPosX + 150, _startPosY + 72), new Point(_startPosX + 150, _startPosY + 55)); g.DrawLine(penBlack, new Point(_startPosX + 150, _startPosY + 72), new Point(_startPosX + 190, _startPosY + 55)); } + public void ChangePictureBoxSize(int pictureBoxWidth, int pictureBoxHeight) + { + _pictureWidth = pictureBoxWidth; + _pictureHeight = pictureBoxHeight; + } } } diff --git a/AirplaneWithRadar/AirplaneWithRadar/EntityAirplane.cs b/AirplaneWithRadar/AirplaneWithRadar/EntityAirplane.cs index 4791138..f448c24 100644 --- a/AirplaneWithRadar/AirplaneWithRadar/EntityAirplane.cs +++ b/AirplaneWithRadar/AirplaneWithRadar/EntityAirplane.cs @@ -39,6 +39,10 @@ namespace AirplaneWithRadar.Entities Weight = weight; BodyColor = bodyColor; } + internal void SetBodyColor(Color color) + { + BodyColor = color; + } } } \ No newline at end of file diff --git a/AirplaneWithRadar/AirplaneWithRadar/EntityAirplaneWithRadar.cs b/AirplaneWithRadar/AirplaneWithRadar/EntityAirplaneWithRadar.cs index 6ded1b0..a8940c8 100644 --- a/AirplaneWithRadar/AirplaneWithRadar/EntityAirplaneWithRadar.cs +++ b/AirplaneWithRadar/AirplaneWithRadar/EntityAirplaneWithRadar.cs @@ -45,5 +45,9 @@ namespace AirplaneWithRadar.Entities Tank = tank; Pin = pin; } + internal void SetAdditionalColor(Color color) + { + AdditionalColor = color; + } } } diff --git a/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneCollection.cs b/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneCollection.cs index 393d53b..6c97343 100644 --- a/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneCollection.cs +++ b/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneCollection.cs @@ -103,6 +103,25 @@ namespace AirplaneWithRadar /// /// /// + /**private void buttonAdd_Click(object sender, EventArgs e) + { + if (listBoxStorages.SelectedIndex == -1) + { + return; + } + var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? + string.Empty]; + if (obj == null) + { + return; + } + + var formAirplaneConfig = new FormAirplaneConfig(); + formAirplaneConfig.AddEvent(AddAirplane); + formAirplaneConfig.Show(); + } + **/ + private void buttonAdd_Click(object sender, EventArgs e) { if (listBoxStorages.SelectedIndex == -1) @@ -115,20 +134,51 @@ namespace AirplaneWithRadar { return; } - AirplaneWithRadarForm form = new(); - if (form.ShowDialog() == DialogResult.OK) + + var formAirplaneConfig = new FormAirplaneConfig(); + formAirplaneConfig.Show(); + Action? airplaneDelegate = new((m) => { - if (obj + form.SelectedAirplane) + bool isAddSuccessful = (obj + m); + if (isAddSuccessful) { MessageBox.Show("Объект добавлен"); + m.ChangePictureBoxSize(pictureBoxCollection.Width, pictureBoxCollection.Height); pictureBoxCollection.Image = obj.ShowAirplanes(); } else { MessageBox.Show("Не удалось добавить объект"); } - } + }); + formAirplaneConfig.AddEvent(airplaneDelegate); } + + + /**private void AddAirplane(DrawningAirplane drawningAirplane) + { + if (listBoxStorages.SelectedIndex == -1) + { + return; + } + var obj = _storage[listBoxStorages.SelectedItem.ToString() ?? + string.Empty]; + if (obj == null) + { + return; + } + + if (obj + drawningAirplane) + { + MessageBox.Show("Объект добавлен"); + pictureBoxCollection.Image = obj.ShowAirplanes(); + } + else + { + MessageBox.Show("Не удалось добавить объект"); + } + }**/ + /// /// Удаление объекта из набора /// diff --git a/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.Designer.cs b/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.Designer.cs index f39be09..3619c82 100644 --- a/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.Designer.cs +++ b/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.Designer.cs @@ -36,7 +36,7 @@ panelYellow = new Panel(); panelBlack = new Panel(); panelBlue = new Panel(); - panelGrey = new Panel(); + panelGray = new Panel(); panelGreen = new Panel(); panelWhite = new Panel(); panelRed = new Panel(); @@ -52,7 +52,7 @@ labelBodyColor = new Label(); pictureBoxObject = new PictureBox(); buttonOk = new Button(); - button2 = new Button(); + buttonCancel = new Button(); groupBoxParameters.SuspendLayout(); groupBoxColors.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit(); @@ -73,9 +73,11 @@ groupBoxParameters.Controls.Add(numericUpDownSpeed); groupBoxParameters.Controls.Add(labelWeight); groupBoxParameters.Controls.Add(labelSpeed); - groupBoxParameters.Location = new Point(12, 12); + groupBoxParameters.Location = new Point(10, 9); + groupBoxParameters.Margin = new Padding(3, 2, 3, 2); groupBoxParameters.Name = "groupBoxParameters"; - groupBoxParameters.Size = new Size(499, 254); + groupBoxParameters.Padding = new Padding(3, 2, 3, 2); + groupBoxParameters.Size = new Size(437, 190); groupBoxParameters.TabIndex = 0; groupBoxParameters.TabStop = false; groupBoxParameters.Text = "Параметры"; @@ -83,19 +85,20 @@ // labelModifiedObject // labelModifiedObject.BorderStyle = BorderStyle.FixedSingle; - labelModifiedObject.Location = new Point(363, 192); + labelModifiedObject.Location = new Point(318, 144); labelModifiedObject.Name = "labelModifiedObject"; - labelModifiedObject.Size = new Size(111, 36); + labelModifiedObject.Size = new Size(97, 28); labelModifiedObject.TabIndex = 10; labelModifiedObject.Text = "Продвинутый"; labelModifiedObject.TextAlign = ContentAlignment.MiddleCenter; + labelModifiedObject.MouseDown += LabelObject_MouseDown; // // labelSimpleObject // labelSimpleObject.BorderStyle = BorderStyle.FixedSingle; - labelSimpleObject.Location = new Point(264, 192); + labelSimpleObject.Location = new Point(231, 144); labelSimpleObject.Name = "labelSimpleObject"; - labelSimpleObject.Size = new Size(97, 36); + labelSimpleObject.Size = new Size(85, 28); labelSimpleObject.TabIndex = 9; labelSimpleObject.Text = "Простой"; labelSimpleObject.TextAlign = ContentAlignment.MiddleCenter; @@ -107,13 +110,15 @@ groupBoxColors.Controls.Add(panelYellow); groupBoxColors.Controls.Add(panelBlack); groupBoxColors.Controls.Add(panelBlue); - groupBoxColors.Controls.Add(panelGrey); + groupBoxColors.Controls.Add(panelGray); groupBoxColors.Controls.Add(panelGreen); groupBoxColors.Controls.Add(panelWhite); groupBoxColors.Controls.Add(panelRed); - groupBoxColors.Location = new Point(248, 42); + groupBoxColors.Location = new Point(217, 32); + groupBoxColors.Margin = new Padding(3, 2, 3, 2); groupBoxColors.Name = "groupBoxColors"; - groupBoxColors.Size = new Size(232, 125); + groupBoxColors.Padding = new Padding(3, 2, 3, 2); + groupBoxColors.Size = new Size(203, 94); groupBoxColors.TabIndex = 8; groupBoxColors.TabStop = false; groupBoxColors.Text = "Цвета"; @@ -121,73 +126,90 @@ // panelPurple // panelPurple.BackColor = Color.Orchid; - panelPurple.Location = new Point(186, 79); + panelPurple.Location = new Point(163, 59); + panelPurple.Margin = new Padding(3, 2, 3, 2); panelPurple.Name = "panelPurple"; - panelPurple.Size = new Size(40, 40); + panelPurple.Size = new Size(35, 30); panelPurple.TabIndex = 7; + panelPurple.MouseDown += PanelColor_MouseDown; // // panelYellow // panelYellow.BackColor = Color.Yellow; - panelYellow.Location = new Point(186, 26); + panelYellow.Location = new Point(163, 20); + panelYellow.Margin = new Padding(3, 2, 3, 2); panelYellow.Name = "panelYellow"; - panelYellow.Size = new Size(40, 40); + panelYellow.Size = new Size(35, 30); panelYellow.TabIndex = 3; + panelYellow.MouseDown += PanelColor_MouseDown; // // panelBlack // panelBlack.BackColor = Color.Black; - panelBlack.Location = new Point(129, 79); + panelBlack.Location = new Point(113, 59); + panelBlack.Margin = new Padding(3, 2, 3, 2); panelBlack.Name = "panelBlack"; - panelBlack.Size = new Size(40, 40); + panelBlack.Size = new Size(35, 30); panelBlack.TabIndex = 6; + panelBlack.MouseDown += PanelColor_MouseDown; // // panelBlue // panelBlue.BackColor = Color.CornflowerBlue; - panelBlue.Location = new Point(129, 26); + panelBlue.Location = new Point(113, 20); + panelBlue.Margin = new Padding(3, 2, 3, 2); panelBlue.Name = "panelBlue"; - panelBlue.Size = new Size(40, 40); + panelBlue.Size = new Size(35, 30); panelBlue.TabIndex = 2; + panelBlue.MouseDown += PanelColor_MouseDown; // - // panelGrey + // panelGray // - panelGrey.BackColor = Color.DarkGray; - panelGrey.Location = new Point(73, 79); - panelGrey.Name = "panelGrey"; - panelGrey.Size = new Size(40, 40); - panelGrey.TabIndex = 5; + panelGray.BackColor = Color.DarkGray; + panelGray.Location = new Point(64, 59); + panelGray.Margin = new Padding(3, 2, 3, 2); + panelGray.Name = "panelGray"; + panelGray.Size = new Size(35, 30); + panelGray.TabIndex = 5; + panelGray.MouseDown += PanelColor_MouseDown; // // panelGreen // panelGreen.BackColor = Color.YellowGreen; - panelGreen.Location = new Point(73, 26); + panelGreen.Location = new Point(64, 20); + panelGreen.Margin = new Padding(3, 2, 3, 2); panelGreen.Name = "panelGreen"; - panelGreen.Size = new Size(40, 40); + panelGreen.Size = new Size(35, 30); panelGreen.TabIndex = 1; + panelGreen.MouseDown += PanelColor_MouseDown; // // panelWhite // panelWhite.BackColor = Color.White; - panelWhite.Location = new Point(16, 79); + panelWhite.Location = new Point(14, 59); + panelWhite.Margin = new Padding(3, 2, 3, 2); panelWhite.Name = "panelWhite"; - panelWhite.Size = new Size(40, 40); + panelWhite.Size = new Size(35, 30); panelWhite.TabIndex = 4; + panelWhite.MouseDown += PanelColor_MouseDown; // // panelRed // panelRed.BackColor = Color.IndianRed; - panelRed.Location = new Point(16, 26); + panelRed.Location = new Point(14, 20); + panelRed.Margin = new Padding(3, 2, 3, 2); panelRed.Name = "panelRed"; - panelRed.Size = new Size(40, 40); + panelRed.Size = new Size(35, 30); panelRed.TabIndex = 0; + panelRed.MouseDown += PanelColor_MouseDown; // // checkBoxPin // checkBoxPin.AutoSize = true; - checkBoxPin.Location = new Point(6, 192); + checkBoxPin.Location = new Point(5, 144); + checkBoxPin.Margin = new Padding(3, 2, 3, 2); checkBoxPin.Name = "checkBoxPin"; - checkBoxPin.Size = new Size(204, 24); + checkBoxPin.Size = new Size(164, 19); checkBoxPin.TabIndex = 6; checkBoxPin.Text = "Признак наличия штыря"; checkBoxPin.UseVisualStyleBackColor = true; @@ -195,9 +217,10 @@ // checkBoxTank // checkBoxTank.AutoSize = true; - checkBoxTank.Location = new Point(6, 162); + checkBoxTank.Location = new Point(5, 122); + checkBoxTank.Margin = new Padding(3, 2, 3, 2); checkBoxTank.Name = "checkBoxTank"; - checkBoxTank.Size = new Size(190, 24); + checkBoxTank.Size = new Size(151, 19); checkBoxTank.TabIndex = 5; checkBoxTank.Text = "Признак наличия бака"; checkBoxTank.UseVisualStyleBackColor = true; @@ -205,48 +228,51 @@ // checkBoxRadar // checkBoxRadar.AutoSize = true; - checkBoxRadar.Location = new Point(6, 132); + checkBoxRadar.Location = new Point(5, 99); + checkBoxRadar.Margin = new Padding(3, 2, 3, 2); checkBoxRadar.Name = "checkBoxRadar"; - checkBoxRadar.Size = new Size(208, 24); + checkBoxRadar.Size = new Size(164, 19); checkBoxRadar.TabIndex = 4; checkBoxRadar.Text = "Признак наличия радара"; checkBoxRadar.UseVisualStyleBackColor = true; // // numericUpDownWeight // - numericUpDownWeight.Location = new Point(88, 85); + numericUpDownWeight.Location = new Point(77, 64); + numericUpDownWeight.Margin = new Padding(3, 2, 3, 2); numericUpDownWeight.Maximum = new decimal(new int[] { 1000, 0, 0, 0 }); numericUpDownWeight.Minimum = new decimal(new int[] { 100, 0, 0, 0 }); numericUpDownWeight.Name = "numericUpDownWeight"; - numericUpDownWeight.Size = new Size(102, 27); + numericUpDownWeight.Size = new Size(89, 23); numericUpDownWeight.TabIndex = 3; numericUpDownWeight.Value = new decimal(new int[] { 1000, 0, 0, 0 }); // // numericUpDownSpeed // - numericUpDownSpeed.Location = new Point(88, 42); + numericUpDownSpeed.Location = new Point(77, 32); + numericUpDownSpeed.Margin = new Padding(3, 2, 3, 2); numericUpDownSpeed.Maximum = new decimal(new int[] { 1000, 0, 0, 0 }); numericUpDownSpeed.Minimum = new decimal(new int[] { 100, 0, 0, 0 }); numericUpDownSpeed.Name = "numericUpDownSpeed"; - numericUpDownSpeed.Size = new Size(102, 27); + numericUpDownSpeed.Size = new Size(89, 23); numericUpDownSpeed.TabIndex = 2; numericUpDownSpeed.Value = new decimal(new int[] { 1000, 0, 0, 0 }); // // labelWeight // labelWeight.AutoSize = true; - labelWeight.Location = new Point(6, 87); + labelWeight.Location = new Point(5, 65); labelWeight.Name = "labelWeight"; - labelWeight.Size = new Size(36, 20); + labelWeight.Size = new Size(29, 15); labelWeight.TabIndex = 1; labelWeight.Text = "Вес:"; // // labelSpeed // labelSpeed.AutoSize = true; - labelSpeed.Location = new Point(6, 42); + labelSpeed.Location = new Point(5, 32); labelSpeed.Name = "labelSpeed"; - labelSpeed.Size = new Size(76, 20); + labelSpeed.Size = new Size(62, 15); labelSpeed.TabIndex = 0; labelSpeed.Text = "Скорость:"; // @@ -256,69 +282,80 @@ panelObject.Controls.Add(labelAdditionalColor); panelObject.Controls.Add(labelBodyColor); panelObject.Controls.Add(pictureBoxObject); - panelObject.Location = new Point(517, 12); + panelObject.Location = new Point(452, 9); + panelObject.Margin = new Padding(3, 2, 3, 2); panelObject.Name = "panelObject"; - panelObject.Size = new Size(260, 193); + panelObject.Size = new Size(228, 145); panelObject.TabIndex = 12; panelObject.DragDrop += PanelObject_DragDrop; panelObject.DragEnter += PanelObject_DragEnter; // // labelAdditionalColor // + labelAdditionalColor.AllowDrop = true; labelAdditionalColor.BorderStyle = BorderStyle.FixedSingle; - labelAdditionalColor.Location = new Point(134, 6); + labelAdditionalColor.Location = new Point(117, 4); labelAdditionalColor.Name = "labelAdditionalColor"; - labelAdditionalColor.Size = new Size(107, 36); + labelAdditionalColor.Size = new Size(94, 28); labelAdditionalColor.TabIndex = 13; labelAdditionalColor.Text = "Доп. цвет"; labelAdditionalColor.TextAlign = ContentAlignment.MiddleCenter; + labelAdditionalColor.DragDrop += labelColor_DragDrop; + labelAdditionalColor.DragEnter += labelColor_DragEnter; // // labelBodyColor // + labelBodyColor.AllowDrop = true; labelBodyColor.BorderStyle = BorderStyle.FixedSingle; - labelBodyColor.Location = new Point(31, 6); + labelBodyColor.Location = new Point(27, 4); labelBodyColor.Name = "labelBodyColor"; - labelBodyColor.Size = new Size(97, 36); + labelBodyColor.Size = new Size(85, 28); labelBodyColor.TabIndex = 12; labelBodyColor.Text = "Цвет"; labelBodyColor.TextAlign = ContentAlignment.MiddleCenter; + labelBodyColor.DragDrop += labelColor_DragDrop; + labelBodyColor.DragEnter += labelColor_DragEnter; // // pictureBoxObject // - pictureBoxObject.Location = new Point(3, 45); + pictureBoxObject.Location = new Point(3, 34); + pictureBoxObject.Margin = new Padding(3, 2, 3, 2); pictureBoxObject.Name = "pictureBoxObject"; - pictureBoxObject.Size = new Size(254, 148); + pictureBoxObject.Size = new Size(222, 111); pictureBoxObject.TabIndex = 7; pictureBoxObject.TabStop = false; // // buttonOk // - buttonOk.Location = new Point(551, 226); + buttonOk.Location = new Point(482, 170); + buttonOk.Margin = new Padding(3, 2, 3, 2); buttonOk.Name = "buttonOk"; - buttonOk.Size = new Size(94, 29); + buttonOk.Size = new Size(82, 22); buttonOk.TabIndex = 13; buttonOk.Text = "Добавить"; buttonOk.UseVisualStyleBackColor = true; buttonOk.Click += buttonOk_Click; // - // button2 + // buttonCancel // - button2.Location = new Point(651, 226); - button2.Name = "button2"; - button2.Size = new Size(94, 29); - button2.TabIndex = 14; - button2.Text = "Отмена"; - button2.UseVisualStyleBackColor = true; + buttonCancel.Location = new Point(570, 170); + buttonCancel.Margin = new Padding(3, 2, 3, 2); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(82, 22); + buttonCancel.TabIndex = 14; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; // // FormAirplaneConfig // - AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 278); - Controls.Add(button2); + ClientSize = new Size(700, 208); + Controls.Add(buttonCancel); Controls.Add(buttonOk); Controls.Add(panelObject); Controls.Add(groupBoxParameters); + Margin = new Padding(3, 2, 3, 2); Name = "FormAirplaneConfig"; Text = "FormAirplaneConfig"; groupBoxParameters.ResumeLayout(false); @@ -347,7 +384,7 @@ private Panel panelYellow; private Panel panelBlack; private Panel panelBlue; - private Panel panelGrey; + private Panel panelGray; private Panel panelGreen; private Panel panelWhite; private Label labelModifiedObject; @@ -357,6 +394,6 @@ private Label labelBodyColor; private PictureBox pictureBoxObject; private Button buttonOk; - private Button button2; + private Button buttonCancel; } } \ No newline at end of file diff --git a/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.cs b/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.cs index cf85f2d..acbc48f 100644 --- a/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.cs +++ b/AirplaneWithRadar/AirplaneWithRadar/FormAirplaneConfig.cs @@ -8,6 +8,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using AirplaneWithRadar.DrawningObjects; +using AirplaneWithRadar.Entities; namespace AirplaneWithRadar { @@ -20,13 +21,24 @@ namespace AirplaneWithRadar /// /// Событие /// - private event AirplaneDelegate? EventAddAirplane; + private event Action? EventAddAirplane; /// /// Конструктор /// Close(); } /// /// Отрисовать самолет @@ -39,6 +51,22 @@ namespace AirplaneWithRadar _airplane?.DrawTransport(gr); pictureBoxObject.Image = bmp; } + /// + /// Добавление события + /// + /// Привязанный метод + public void AddEvent(Action? ev) + { + if (EventAddAirplane == null) + { + EventAddAirplane = ev; + } + else + { + EventAddAirplane += ev; + } + } + /// /// Передаем информацию при нажатии на Label /// @@ -88,16 +116,52 @@ namespace AirplaneWithRadar } DrawAirplane(); } + // TODO Реализовать логику смены цветов: основного и дополнительного (для продвинутого объекта) + /// - /// Добавление машины + /// Добавление самолета /// /// /// private void buttonOk_Click(object sender, EventArgs e) { - EventAddCar?.Invoke(_airplane); + EventAddAirplane?.Invoke(_airplane); Close(); } + private void PanelColor_MouseDown(object sender, MouseEventArgs e) + { + (sender as Panel)?.DoDragDrop((sender as Panel)?.BackColor, DragDropEffects.Move | DragDropEffects.Copy); + } + + private void labelColor_DragDrop(object sender, DragEventArgs e) + { + if (_airplane == null) + return; + switch (((Label)sender).Name) + { + case "labelBodyColor": + _airplane?.EntityAirplane?.SetBodyColor((Color)e.Data.GetData(typeof(Color))); + break; + case "labelAdditionalColor": + if (!(_airplane is DrawningAirplaneWithRadar)) + return; + (_airplane.EntityAirplane as EntityAirplaneWithRadar)?.SetAdditionalColor(color: (Color)e.Data.GetData(typeof(Color))); + break; + } + DrawAirplane(); + } + + private void labelColor_DragEnter(object sender, DragEventArgs e) + { + if (e.Data?.GetDataPresent(typeof(Color)) ?? false) + { + e.Effect = DragDropEffects.Copy; + } + else + { + e.Effect = DragDropEffects.None; + } + } } }