From 4276aa834eb6ad68f92a5621d9349fedfb5b002c Mon Sep 17 00:00:00 2001 From: "evasina2312@gmail.com" Date: Thu, 24 Nov 2022 00:23:39 +0400 Subject: [PATCH] Event work --- .../ProjectMachine/FormMapWithSetTank.cs | 21 ++---------- .../ProjectMachine/FormTankConfig.Designer.cs | 25 ++++++++------- .../ProjectMachine/FormTankConfig.cs | 32 +++++++++++++++++++ ProjectMachine/ProjectMachine/TankDelegate.cs | 8 +++++ 4 files changed, 56 insertions(+), 30 deletions(-) create mode 100644 ProjectMachine/ProjectMachine/TankDelegate.cs diff --git a/ProjectMachine/ProjectMachine/FormMapWithSetTank.cs b/ProjectMachine/ProjectMachine/FormMapWithSetTank.cs index b92e6f7..b6c4748 100644 --- a/ProjectMachine/ProjectMachine/FormMapWithSetTank.cs +++ b/ProjectMachine/ProjectMachine/FormMapWithSetTank.cs @@ -114,24 +114,9 @@ namespace ProjectMachine /// 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(); } /// /// Удаление объекта diff --git a/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs b/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs index 19f8e64..e1fbc76 100644 --- a/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs +++ b/ProjectMachine/ProjectMachine/FormTankConfig.Designer.cs @@ -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); diff --git a/ProjectMachine/ProjectMachine/FormTankConfig.cs b/ProjectMachine/ProjectMachine/FormTankConfig.cs index d4f0678..86d8b72 100644 --- a/ProjectMachine/ProjectMachine/FormTankConfig.cs +++ b/ProjectMachine/ProjectMachine/FormTankConfig.cs @@ -16,6 +16,13 @@ namespace ProjectMachine /// Переменная-выбранная машина /// DrawningMachine _tank = null; + /// + /// Событие + /// + private event TankDelegate EventAddTank; + /// + /// Конструктор + /// public FormTankConfig() { InitializeComponent(); @@ -42,6 +49,21 @@ namespace ProjectMachine pictureBoxObject.Image = bmp; } /// + /// Добавление события + /// + /// + public void AddEvent(TankDelegate ev) + { + if (EventAddTank == null) + { + EventAddTank = new TankDelegate(ev); + } + else + { + EventAddTank += ev; + } + } + /// /// Передаем информацию при нажатии на Label /// /// @@ -128,5 +150,15 @@ namespace ProjectMachine { // TODO Call method from object _car if _car is DrawningSportCar and set dop color } + /// + /// Добавление машины + /// + /// + /// + private void buttonOk_Click(object sender, EventArgs e) + { + EventAddTank?.Invoke(_tank); + Close(); + } } } diff --git a/ProjectMachine/ProjectMachine/TankDelegate.cs b/ProjectMachine/ProjectMachine/TankDelegate.cs new file mode 100644 index 0000000..e382c93 --- /dev/null +++ b/ProjectMachine/ProjectMachine/TankDelegate.cs @@ -0,0 +1,8 @@ +namespace ProjectMachine +{ + /// + /// Делегат для передачи объекта-танка + /// + /// + public delegate void TankDelegate(DrawningMachine tank); +}