diff --git a/Liner/Liner/FormShipConfig.Designer.cs b/Liner/Liner/FormShipConfig.Designer.cs index 44ad4be..5c597eb 100644 --- a/Liner/Liner/FormShipConfig.Designer.cs +++ b/Liner/Liner/FormShipConfig.Designer.cs @@ -287,7 +287,7 @@ this.LabelDopColor.Text = "Доп. цвет"; this.LabelDopColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.LabelDopColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelDopColor_DragDrop); - this.LabelDopColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragEnter); + this.LabelDopColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelDopColor_DragEnter); // // LabelBaseColor // diff --git a/Liner/Liner/FormShipConfig.cs b/Liner/Liner/FormShipConfig.cs index e39ac7e..5814faa 100644 --- a/Liner/Liner/FormShipConfig.cs +++ b/Liner/Liner/FormShipConfig.cs @@ -80,9 +80,9 @@ namespace Liner } DrawShip(); } - private void LabelBaseColor_DragEnter(object sender, DragEventArgs e) + private void setDragEffect(DragEventArgs e, Type needTypeData, bool condition) { - if (e.Data.GetDataPresent(typeof(Color))) + if (e.Data.GetDataPresent(needTypeData) && condition) { e.Effect = DragDropEffects.Copy; } @@ -91,11 +91,13 @@ namespace Liner e.Effect = DragDropEffects.None; } } + private void LabelBaseColor_DragEnter(object sender, DragEventArgs e) => setDragEffect(e, typeof(Color), _ship != null); + private void LabelDopColor_DragEnter(object sender, DragEventArgs e) => setDragEffect(e, typeof(Color), _ship != null && _ship is DrawningLiner); private void LabelBaseColor_DragDrop(object sender, DragEventArgs e) { _ship.SetColor((Color)e.Data.GetData(typeof(Color))); DrawShip(); - } + } private void LabelDopColor_DragDrop(object sender, DragEventArgs e) { if (_ship is not DrawningLiner liner)