Eliseev E.E. LabWork05 #6

Merged
eegov merged 11 commits from LabWork05 into LabWork04 2022-11-07 10:02:56 +04:00
4 changed files with 28 additions and 67 deletions
Showing only changes of commit a740b44232 - Show all commits

View File

@ -13,7 +13,7 @@ namespace Airbus
public float Weight { get; private set; } //вес
public Color CorpusColor { get; private set; } //цвет корпуса
public Color CorpusColor { get; set; } //цвет корпуса
public float Step => Speed * 100 / Weight; //шаг перемещения самолёта

View File

@ -10,7 +10,7 @@ namespace Airbus
internal class EntitySuperAirbus : EntityAirbus
{
//Дополнительный цвет
public Color AddColor { get; private set; }
public Color AddColor { get; set; }
//Признак наличия дополнительно пассажирского отсека
public bool AddСompartment { get; private set; }

View File

@ -316,7 +316,6 @@
this.buttonCancel.TabIndex = 4;
this.buttonCancel.Text = "Отмена";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
//
// FormPlaneConfig
//

View File

@ -30,6 +30,8 @@ namespace Airbus
panelWhite.MouseDown += PanelColor_MouseDown;
panelYellow.MouseDown += PanelColor_MouseDown;
panelBlue.MouseDown += PanelColor_MouseDown;
buttonCancel.Click += (object sender, EventArgs e) => Close();
}
//отрисовка самолёт
@ -45,10 +47,10 @@ namespace Airbus
//добавление события
public void AddEvent(PlaneDelegate ev)
{
if(EventAddPlane == null)
if (EventAddPlane == null)
{
EventAddPlane = new PlaneDelegate(ev);
}
}
else
{
EventAddPlane += ev;
@ -82,7 +84,7 @@ namespace Airbus
_plane = new DrawningAirbus((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, labelBaseColor.BackColor);
break;
case "labelModifiedObject":
_plane = new DrawningSuperAirbus((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, labelBaseColor.BackColor, labelAddColor.BackColor,
_plane = new DrawningSuperAirbus((int)numericUpDownSpeed.Value, (int)numericUpDownWeight.Value, labelBaseColor.BackColor, labelAddColor.BackColor,
checkBoxAddСompartment.Checked, checkBoxAddEngine.Checked);
break;
}
@ -93,13 +95,13 @@ namespace Airbus
//отправляем цвет с панели
private void PanelColor_MouseDown(object sender, MouseEventArgs e)
{
(sender as Control).DoDragDrop((sender as Control).Name, DragDropEffects.Move | DragDropEffects.Copy);
(sender as Control).DoDragDrop((sender as Control).BackColor, DragDropEffects.Move | DragDropEffects.Copy);
}
//проверка получаемой информации (её типа на соответсвие требуемому)
private void LabelBaseColor_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
if (e.Data.GetDataPresent(typeof(Color)))
{
e.Effect = DragDropEffects.Copy;
}
@ -112,39 +114,20 @@ namespace Airbus
//принимаем основной цвет
private void LabelBaseColor_DragDrop(object sender, DragEventArgs e)
{
switch (e.Data.GetData(DataFormats.Text).ToString())
if (_plane != null)
{
case "panelRed":
labelBaseColor.BackColor = Color.Red;
break;
case "panelBlack":
labelBaseColor.BackColor = Color.Black;
break;
case "panelGreen":
labelBaseColor.BackColor = Color.Green;
break;
case "panelYellow":
labelBaseColor.BackColor = Color.Yellow;
break;
case "panelBlue":
labelBaseColor.BackColor = Color.Blue;
break;
case "panelPurple":
labelBaseColor.BackColor = Color.Purple;
break;
case "panelGray":
labelBaseColor.BackColor = Color.DarkGray;
break;
case "panelWhite":
labelBaseColor.BackColor = Color.White;
break;
if (e.Data.GetDataPresent(typeof(Color)))
{
_plane.Airbus.CorpusColor = (Color)e.Data.GetData(typeof(Color));
}
DrawPlane();
}
}
//проверка получаемой информации (её типа на соответсвие требуемому)
private void LabelAddColor_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
if (e.Data.GetDataPresent(typeof(Color)))
{
e.Effect = DragDropEffects.Copy;
}
@ -157,48 +140,27 @@ namespace Airbus
//принимаем дополнительный цвет
private void labelAddColor_DragDrop(object sender, DragEventArgs e)
{
switch (e.Data.GetData(DataFormats.Text).ToString())
if (_plane != null && _plane is DrawningSuperAirbus airbus)
{
case "panelRed":
labelAddColor.BackColor = Color.Red;
break;
case "panelBlack":
labelAddColor.BackColor = Color.Black;
break;
case "panelGreen":
labelAddColor.BackColor = Color.Green;
break;
case "panelYellow":
labelAddColor.BackColor = Color.Yellow;
break;
case "panelBlue":
labelAddColor.BackColor = Color.Blue;
break;
case "panelPurple":
labelAddColor.BackColor = Color.Purple;
break;
case "panelGray":
labelAddColor.BackColor = Color.DarkGray;
break;
case "panelWhite":
labelAddColor.BackColor = Color.White;
break;
if (e.Data.GetDataPresent(typeof(Color)))
{
if (airbus.Airbus is EntitySuperAirbus entityAirbus)
{
entityAirbus.AddColor = (Color)e.Data.GetData(typeof(Color));
}
}
DrawPlane();
}
}
//добавление машины
private void ButtonAddObject_Click(object sender, EventArgs e)
{
EventAddPlane?.Invoke(_plane);
Close();
}
//закрытие формы конфигурации
private void ButtonCancel_Click(object sender, EventArgs e)
{
Close();
}
}
}