Event work

This commit is contained in:
evasina2312@gmail.com 2022-11-24 00:23:39 +04:00
parent 5cc6f9c611
commit 4276aa834e
4 changed files with 56 additions and 30 deletions

View File

@ -114,24 +114,9 @@ namespace ProjectMachine
/// <param name="e"></param>
private void ButtonAddTank_Click(object sender, EventArgs e)
{
if (listBoxMaps.SelectedIndex == -1)
{
return;
}
FormMachine form = new();
if (form.ShowDialog() == DialogResult.OK)
{
DrawningObject tank = new(form.SelectedTank);
if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + tank!=null)
{
MessageBox.Show("Объект добавлен");
pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
}
else
{
MessageBox.Show("Не удалось добавить объект");
}
}
var formTankConfig = new FormTankConfig();
// TODO Call method AddEvent from formCarConfig
formTankConfig.Show();
}
/// <summary>
/// Удаление объекта

View File

@ -29,6 +29,7 @@
private void InitializeComponent()
{
this.groupBoxConfig = new System.Windows.Forms.GroupBox();
this.checkBoxBodyKit = new System.Windows.Forms.CheckBox();
this.labelModifiedObject = new System.Windows.Forms.Label();
this.labelSimpleObject = new System.Windows.Forms.Label();
this.groupBoxColors = new System.Windows.Forms.GroupBox();
@ -52,7 +53,6 @@
this.pictureBoxObject = new System.Windows.Forms.PictureBox();
this.buttonOk = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
this.checkBoxBodyKit = new System.Windows.Forms.CheckBox();
this.groupBoxConfig.SuspendLayout();
this.groupBoxColors.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownWeight)).BeginInit();
@ -80,6 +80,17 @@
this.groupBoxConfig.TabStop = false;
this.groupBoxConfig.Text = "Параметры";
//
// checkBoxBodyKit
//
this.checkBoxBodyKit.AutoSize = true;
this.checkBoxBodyKit.Location = new System.Drawing.Point(6, 136);
this.checkBoxBodyKit.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.checkBoxBodyKit.Name = "checkBoxBodyKit";
this.checkBoxBodyKit.Size = new System.Drawing.Size(207, 24);
this.checkBoxBodyKit.TabIndex = 18;
this.checkBoxBodyKit.Text = "Признак наличия обвеса";
this.checkBoxBodyKit.UseVisualStyleBackColor = true;
//
// labelModifiedObject
//
this.labelModifiedObject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
@ -311,6 +322,7 @@
this.buttonOk.TabIndex = 5;
this.buttonOk.Text = "Добавить";
this.buttonOk.UseVisualStyleBackColor = true;
this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
//
// buttonCancel
//
@ -322,17 +334,6 @@
this.buttonCancel.Text = "Отмена";
this.buttonCancel.UseVisualStyleBackColor = true;
//
// checkBoxBodyKit
//
this.checkBoxBodyKit.AutoSize = true;
this.checkBoxBodyKit.Location = new System.Drawing.Point(6, 136);
this.checkBoxBodyKit.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.checkBoxBodyKit.Name = "checkBoxBodyKit";
this.checkBoxBodyKit.Size = new System.Drawing.Size(207, 24);
this.checkBoxBodyKit.TabIndex = 18;
this.checkBoxBodyKit.Text = "Признак наличия обвеса";
this.checkBoxBodyKit.UseVisualStyleBackColor = true;
//
// FormTankConfig
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);

View File

@ -16,6 +16,13 @@ namespace ProjectMachine
/// Переменная-выбранная машина
/// </summary>
DrawningMachine _tank = null;
/// <summary>
/// Событие
/// </summary>
private event TankDelegate EventAddTank;
/// <summary>
/// Конструктор
/// </summary>
public FormTankConfig()
{
InitializeComponent();
@ -42,6 +49,21 @@ namespace ProjectMachine
pictureBoxObject.Image = bmp;
}
/// <summary>
/// Добавление события
/// </summary>
/// <param name="ev"></param>
public void AddEvent(TankDelegate ev)
{
if (EventAddTank == null)
{
EventAddTank = new TankDelegate(ev);
}
else
{
EventAddTank += ev;
}
}
/// <summary>
/// Передаем информацию при нажатии на Label
/// </summary>
/// <param name="sender"></param>
@ -128,5 +150,15 @@ namespace ProjectMachine
{
// TODO Call method from object _car if _car is DrawningSportCar and set dop color
}
/// <summary>
/// Добавление машины
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonOk_Click(object sender, EventArgs e)
{
EventAddTank?.Invoke(_tank);
Close();
}
}
}

View File

@ -0,0 +1,8 @@
namespace ProjectMachine
{
/// <summary>
/// Делегат для передачи объекта-танка
/// </summary>
/// <param name="tank"></param>
public delegate void TankDelegate(DrawningMachine tank);
}