From e74fd330d925cb2ba15014c2a62e4cd5095b98e7 Mon Sep 17 00:00:00 2001 From: elizaveta Date: Sun, 8 Dec 2024 17:47:59 +0400 Subject: [PATCH] =?UTF-8?q?=D1=82=D0=BE=D0=BF=D1=87=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Forms/FormProductMaterial.Designer.cs | 2 - .../Forms/FormProductMaterial.cs | 50 ++++++++++++++----- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.Designer.cs b/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.Designer.cs index 5a5f044..0c0c529 100644 --- a/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.Designer.cs +++ b/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.Designer.cs @@ -159,12 +159,10 @@ // checkedListBox1 // checkedListBox1.FormattingEnabled = true; - checkedListBox1.Items.AddRange(new object[] { "Wardrobe", "Table", "Bench" }); checkedListBox1.Location = new Point(349, 132); checkedListBox1.Name = "checkedListBox1"; checkedListBox1.Size = new Size(262, 112); checkedListBox1.TabIndex = 9; - checkedListBox1.SelectedIndexChanged += checkedListBox1_SelectedIndexChanged; // // FormProductMaterial // diff --git a/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.cs b/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.cs index ecc9bcb..e399428 100644 --- a/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.cs +++ b/CarpentryWorkshop/CarpentryWorkshop/Forms/FormProductMaterial.cs @@ -58,6 +58,9 @@ namespace CarpentryWorkshop.Forms "Table", "Bench" }); + + // Подписываемся на событие ItemCheck + checkedListBox1.ItemCheck += checkedListBox1_ItemCheck; } private void buttonAdd_Click(object sender, EventArgs e) @@ -106,30 +109,51 @@ namespace CarpentryWorkshop.Forms private Product CreateProduct(int id) => Product.CreateEntity(id, textBoxName.Text, selectedProducts, Convert.ToInt32(numericUpDownCount.Value), CreateListMaterialFromDataGrid()); - private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) + private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { // Сбрасываем выбранные продукты selectedProducts = ProductType.None; // Проходим по всем выбранным элементам - foreach (var item in checkedListBox1.CheckedItems) + for (int i = 0; i < checkedListBox1.Items.Count; i++) { - switch (item.ToString()) + if (i == e.Index) { - case "Wardrobe": - selectedProducts |= ProductType.Wardrobe; - break; - case "Table": - selectedProducts |= ProductType.Table; - break; - case "Bench": - selectedProducts |= ProductType.Bench; - break; + if (e.NewValue == CheckState.Checked) + { + switch (checkedListBox1.Items[i].ToString()) + { + case "Wardrobe": + selectedProducts |= ProductType.Wardrobe; + break; + case "Table": + selectedProducts |= ProductType.Table; + break; + case "Bench": + selectedProducts |= ProductType.Bench; + break; + } + } + } + else if (checkedListBox1.GetItemChecked(i)) + { + switch (checkedListBox1.Items[i].ToString()) + { + case "Wardrobe": + selectedProducts |= ProductType.Wardrobe; + break; + case "Table": + selectedProducts |= ProductType.Table; + break; + case "Bench": + selectedProducts |= ProductType.Bench; + break; + } } } // Выводим выбранные продукты для демонстрации - MessageBox.Show($"Selected products: {selectedProducts}"); + MessageBox.Show($"Ваши выбранные изделия: {selectedProducts}"); } } } \ No newline at end of file