aboutsummaryrefslogtreecommitdiff
path: root/VB.Net Projects/catalog
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-03-05 15:03:15 +0200
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-03-05 15:03:15 +0200
commit73836287366af81f0407d411162bc5f48e0cefde (patch)
treecf5465043dc9d3ce7230b76203f50dbbce159d87 /VB.Net Projects/catalog
parent011d8e18831511b2831b2f6c171c42b7620801ab (diff)
downloadSchool-Projects-73836287366af81f0407d411162bc5f48e0cefde.tar
School-Projects-73836287366af81f0407d411162bc5f48e0cefde.tar.gz
School-Projects-73836287366af81f0407d411162bc5f48e0cefde.zip
Reworked catalog project business logic with OOP, data binding and event handling in mind
Diffstat (limited to 'VB.Net Projects/catalog')
-rw-r--r--VB.Net Projects/catalog/catalog/Form1.Designer.vb9
-rw-r--r--VB.Net Projects/catalog/catalog/Form1.vb81
-rw-r--r--VB.Net Projects/catalog/catalog/Product.vb13
3 files changed, 45 insertions, 58 deletions
diff --git a/VB.Net Projects/catalog/catalog/Form1.Designer.vb b/VB.Net Projects/catalog/catalog/Form1.Designer.vb
index 7337d03..6a85880 100644
--- a/VB.Net Projects/catalog/catalog/Form1.Designer.vb
+++ b/VB.Net Projects/catalog/catalog/Form1.Designer.vb
@@ -35,6 +35,7 @@ Partial Class Form1
'
'cbProducts
'
+ Me.cbProducts.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cbProducts.FormattingEnabled = True
Me.cbProducts.Location = New System.Drawing.Point(17, 53)
Me.cbProducts.Name = "cbProducts"
@@ -64,9 +65,9 @@ Partial Class Form1
Me.lblProductPrice.AutoSize = True
Me.lblProductPrice.Location = New System.Drawing.Point(210, 94)
Me.lblProductPrice.Name = "lblProductPrice"
- Me.lblProductPrice.Size = New System.Drawing.Size(32, 15)
+ Me.lblProductPrice.Size = New System.Drawing.Size(27, 15)
Me.lblProductPrice.TabIndex = 3
- Me.lblProductPrice.Text = "0 лв."
+ Me.lblProductPrice.Text = "ERR"
'
'btnAddProduct
'
@@ -109,9 +110,9 @@ Partial Class Form1
Me.lblSum.AutoSize = True
Me.lblSum.Location = New System.Drawing.Point(141, 245)
Me.lblSum.Name = "lblSum"
- Me.lblSum.Size = New System.Drawing.Size(32, 15)
+ Me.lblSum.Size = New System.Drawing.Size(27, 15)
Me.lblSum.TabIndex = 8
- Me.lblSum.Text = "0 лв."
+ Me.lblSum.Text = "ERR"
'
'Form1
'
diff --git a/VB.Net Projects/catalog/catalog/Form1.vb b/VB.Net Projects/catalog/catalog/Form1.vb
index 71af62b..a7329ae 100644
--- a/VB.Net Projects/catalog/catalog/Form1.vb
+++ b/VB.Net Projects/catalog/catalog/Form1.vb
@@ -1,65 +1,38 @@
-Public Class Form1
- Dim Sum As Double
- Dim Products As String() = {
- "Магнитни наколенки",
- "Магнитен колан",
- "Магни Иър",
- "Масажираща седалка",
- "Сауна за лице",
- "Електрическо одеяло",
- "Инфраред масажор за тяло",
- "Гривна за баланс",
- "Цитрус джусер",
- "Апарат за кръвно налягане"
+Imports System.ComponentModel
+
+Public Class Form1
+ ReadOnly Products As BindingList(Of Product) = New BindingList(Of Product) From {
+ New Product("Магнитни наколенки", 59.9),
+ New Product("Магнитен колан", 39.9),
+ New Product("Магни Иър", 39.9),
+ New Product("Масажираща седалка", 59.9),
+ New Product("Сауна за лице", 49.9),
+ New Product("Електрическо одеяло", 56.9),
+ New Product("Инфраред масажор за тяло", 147.0),
+ New Product("Гривна за баланс", 54.9),
+ New Product("Цитрус джусер", 49.9),
+ New Product("Апарат за кръвно налягане", 109.8)
}
- Dim Prices As Single() = {
- 59.9,
- 39.9,
- 39.9,
- 59.9,
- 49.9,
- 56.9,
- 147.0,
- 54.9,
- 49.9,
- 109.8
- }
-
- Private Function ToCurrency(Optional value As Double = 0) As String
- Return FormatCurrency(value, 2)
- End Function
+ ReadOnly ChosenProducts As BindingList(Of Product) = New BindingList(Of Product)
Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- cbProducts.Items.AddRange(Products)
- lblSum.Text = ToCurrency()
- lblProductPrice.Text = ToCurrency()
+ cbProducts.DataSource = Products
+ lbChosenProducts.DataSource = ChosenProducts
End Sub
- Private Sub cbProducts_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbProducts.SelectedIndexChanged
- lblProductPrice.Text = ToCurrency(Prices(cbProducts.SelectedIndex))
- End Sub
-
- Private Sub btnAddProduct_Click(sender As Object, e As EventArgs) Handles btnAddProduct.Click
- If String.IsNullOrEmpty(cbProducts.Text) Then
- Return
+ Private Sub UpdateChosenProducts(sender As Object, e As EventArgs) Handles btnAddProduct.Click, btnRemoveProduct.Click
+ If DirectCast(sender, Control).Name = btnAddProduct.Name Then
+ ChosenProducts.Add(Products(cbProducts.SelectedIndex))
+ Else
+ ChosenProducts.Remove(cbProducts.SelectedItem)
End If
-
- lbChosenProducts.Items.Add(cbProducts.Text)
- Sum += Prices(cbProducts.SelectedIndex)
- lblSum.Text = ToCurrency(Sum)
End Sub
- Private Sub btnRemoveProduct_Click(sender As Object, e As EventArgs) Handles btnRemoveProduct.Click
- If String.IsNullOrEmpty(cbProducts.Text) Then
- Return
- End If
-
- If Not lbChosenProducts.Items.Contains(cbProducts.SelectedItem) Then
- Return
- End If
+ Private Sub UpdateSumLabel(sender As Object, e As EventArgs) Handles btnAddProduct.Click, btnRemoveProduct.Click, MyBase.Load
+ lblSum.Text = FormatCurrency(ChosenProducts.Sum(Function(p) p.Price), 2)
+ End Sub
- lbChosenProducts.Items.Remove(cbProducts.SelectedItem)
- Sum -= Prices(cbProducts.SelectedIndex)
- lblSum.Text = ToCurrency(Sum)
+ Private Sub cbProducts_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbProducts.SelectedIndexChanged, MyBase.Load
+ lblProductPrice.Text = FormatCurrency(Products(cbProducts.SelectedIndex).Price, 2)
End Sub
End Class \ No newline at end of file
diff --git a/VB.Net Projects/catalog/catalog/Product.vb b/VB.Net Projects/catalog/catalog/Product.vb
new file mode 100644
index 0000000..a9c4fe5
--- /dev/null
+++ b/VB.Net Projects/catalog/catalog/Product.vb
@@ -0,0 +1,13 @@
+Public Class Product
+ Public Name As String
+ Public Price As Single
+
+ Public Sub New(name As String, price As Single)
+ Me.Name = name
+ Me.Price = price
+ End Sub
+
+ Public Overrides Function ToString() As String
+ Return Me.Name
+ End Function
+End Class \ No newline at end of file