Правки(Drag drop)

This commit is contained in:
Павел Сорокин 2022-11-03 14:01:55 +04:00
parent a576085d7a
commit 7132f8f322
2 changed files with 9 additions and 7 deletions

View File

@ -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.LabelDopColor_DragEnter);
this.LabelDopColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelColor_DragEnter);
//
// LabelBaseColor
//
@ -300,7 +300,7 @@
this.LabelBaseColor.Text = "Цвет";
this.LabelBaseColor.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.LabelBaseColor.DragDrop += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragDrop);
this.LabelBaseColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelBaseColor_DragEnter);
this.LabelBaseColor.DragEnter += new System.Windows.Forms.DragEventHandler(this.LabelColor_DragEnter);
//
// pictureBoxObject
//

View File

@ -80,9 +80,9 @@ namespace Liner
}
DrawShip();
}
private void setDragEffect(DragEventArgs e, Type needTypeData, bool condition)
private void LabelColor_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(needTypeData) && condition)
if (e.Data.GetDataPresent(typeof(Color)))
{
e.Effect = DragDropEffects.Copy;
}
@ -91,16 +91,18 @@ 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)
{
if (_ship == null)
{
return;
}
_ship.SetColor((Color)e.Data.GetData(typeof(Color)));
DrawShip();
}
private void LabelDopColor_DragDrop(object sender, DragEventArgs e)
{
if (_ship is not DrawningLiner liner)
if (_ship == null || _ship is not DrawningLiner liner)
{
return;
}