 <p>I made some assumptions on your UI. Rather than placing the items as radio buttons in a <code>ComboBox</code>, I placed all of the doughnuts and coffees into a respective <code>GroupBox</code>. The concepts of this answer will still apply, however you'll just have to be mindful that this is not directly drop-in and go. </p> <p>Here's the way I laid out the UI:</p> <p><a href="https://i.stack.imgur.com/DyIQs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/DyIQs.png" alt="UI Layout"></a></p> <p>I have placed the <code>RadioButton</code>s for the items inside a <code>FlowLayoutPanel</code> inside of a <code>GroupBox</code>. I also placed labels into a TableLayoutPanel to provide the total amounts. </p> <p>The most important part is how I named the <code>RadioButton</code> controls for the items being listed. In the code behind file I used the names of the <code>RadioButton</code> controls to check which Item was being modified. I could have populated the <code>RadioButton</code> controls at run time to ensure that everything lined up, but that was more work and it's not difficult to do if you use <code>GetType(MyEnum).GetNames()</code> in the <code>Me.Load</code> event of the form to create new <code>RadioButtons</code> with the correct name, text, and adding the proper event handlers to the radio buttons.</p> <p>If you'd like to see how this works, add a new form to your Project and call it DoughnutsAndCoffee. Here is the designer file and the Code behind:</p> <p>Code Behind:</p> <pre><code>Public Class DoughnutsAndCoffee Private SelectedItems As New List(Of Items) Public Event ItemsChanged() Public Sub UpdateTotal() Handles Me.ItemsChanged Dim subTotal As Decimal = 0D For Each item As Items In SelectedItems subTotal += Prices.GetPrice(item) Next Dim TaxTotal As Decimal = subTotal * Prices.Tax_Rate Dim total As Decimal = subTotal + TaxTotal Me.SubTotal_Label.Invoke(Sub() Me.SubTotal_Label.Text = subTotal.ToString("C2")) Me.Tax_Label.Invoke(Sub() Me.Tax_Label.Text = TaxTotal.ToString("C2")) Me.Total_Label.Invoke(Sub() Me.Total_Label.Text = total.ToString("C2")) End Sub Private Sub RadioButton_CheckedChanged(sender As Object, e As EventArgs) Handles Cappuccino_RadioButton.CheckedChanged, Chocolate_RadioButton.CheckedChanged, Filled_RadioButton.CheckedChanged, Glazed_RadioButton.CheckedChanged, Regular_RadioButton.CheckedChanged, Sugar_RadioButton.CheckedChanged Dim senderRB As RadioButton = DirectCast(sender, RadioButton) Dim selectedItem As String = (From item As String In GetType(Items).GetEnumNames Where senderRB.Name.Contains(item) Select item).FirstOrDefault If selectedItem &lt;&gt; String.Empty Then Dim Item As Items = DirectCast([Enum].Parse(GetType(Items), selectedItem), Items) If senderRB.Checked Then Me.SelectedItems.Add(Item) RaiseEvent ItemsChanged() Else If Me.SelectedItems.Contains(Item) Then Me.SelectedItems.Remove(Item) RaiseEvent ItemsChanged() End If End If End If End Sub Private Sub DoughnutsAndCoffee_Shown(sender As Object, e As EventArgs) Handles Me.Shown RaiseEvent ItemsChanged() End Sub End Class Public Structure Prices Public Const Tax_Rate As Decimal = 0.03D Public Const Glazed As Decimal = 0.65D Public Const Sugar As Decimal = 0.65D Public Const Chocolate As Decimal = 0.85D Public Const Filled As Decimal = 1D Public Const Regular As Decimal = 1D Public Const Cappuccino As Decimal = 2.5D Public Shared Function GetPrice(item As Items) As Decimal Dim itemStr As String = [Enum].GetName(GetType(Items), item) Return GetType(Prices).GetField(itemStr).GetValue(Nothing) End Function End Structure Public Enum Items Glazed Sugar Chocolate Filled Regular Cappuccino End Enum </code></pre> <p>Designer File:</p> <pre><code>&lt;Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()&gt; _ Partial Class DoughnutsAndCoffee Inherits System.Windows.Forms.Form 'Form overrides dispose to clean up the component list. &lt;System.Diagnostics.DebuggerNonUserCode()&gt; _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. &lt;System.Diagnostics.DebuggerStepThrough()&gt; _ Private Sub InitializeComponent() Me.Glazed_RadioButton = New System.Windows.Forms.RadioButton() Me.Sugar_RadioButton = New System.Windows.Forms.RadioButton() Me.Chocolate_RadioButton = New System.Windows.Forms.RadioButton() Me.Filled_RadioButton = New System.Windows.Forms.RadioButton() Me.Regular_RadioButton = New System.Windows.Forms.RadioButton() Me.Cappuccino_RadioButton = New System.Windows.Forms.RadioButton() Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() Me.Total_Label = New System.Windows.Forms.Label() Me.Label5 = New System.Windows.Forms.Label() Me.Tax_Label = New System.Windows.Forms.Label() Me.Label3 = New System.Windows.Forms.Label() Me.SubTotal_Label = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label() Me.FlowLayoutPanel2 = New System.Windows.Forms.FlowLayoutPanel() Me.FlowLayoutPanel1 = New System.Windows.Forms.FlowLayoutPanel() Me.Coffee_GroupBox = New System.Windows.Forms.GroupBox() Me.Doughnuts_GroupBox = New System.Windows.Forms.GroupBox() Me.TableLayoutPanel1.SuspendLayout() Me.FlowLayoutPanel2.SuspendLayout() Me.FlowLayoutPanel1.SuspendLayout() Me.Coffee_GroupBox.SuspendLayout() Me.Doughnuts_GroupBox.SuspendLayout() Me.SuspendLayout() ' 'Glazed_RadioButton ' Me.Glazed_RadioButton.AutoSize = True Me.Glazed_RadioButton.Location = New System.Drawing.Point(3, 3) Me.Glazed_RadioButton.Name = "Glazed_RadioButton" Me.Glazed_RadioButton.Size = New System.Drawing.Size(58, 17) Me.Glazed_RadioButton.TabIndex = 9 Me.Glazed_RadioButton.Text = "Glazed" Me.Glazed_RadioButton.UseVisualStyleBackColor = True ' 'Sugar_RadioButton ' Me.Sugar_RadioButton.AutoSize = True Me.Sugar_RadioButton.Location = New System.Drawing.Point(3, 26) Me.Sugar_RadioButton.Name = "Sugar_RadioButton" Me.Sugar_RadioButton.Size = New System.Drawing.Size(53, 17) Me.Sugar_RadioButton.TabIndex = 10 Me.Sugar_RadioButton.Text = "Sugar" Me.Sugar_RadioButton.UseVisualStyleBackColor = True ' 'Chocolate_RadioButton ' Me.Chocolate_RadioButton.AutoSize = True Me.Chocolate_RadioButton.Location = New System.Drawing.Point(3, 49) Me.Chocolate_RadioButton.Name = "Chocolate_RadioButton" Me.Chocolate_RadioButton.Size = New System.Drawing.Size(73, 17) Me.Chocolate_RadioButton.TabIndex = 11 Me.Chocolate_RadioButton.Text = "Chocolate" Me.Chocolate_RadioButton.UseVisualStyleBackColor = True ' 'Filled_RadioButton ' Me.Filled_RadioButton.AutoSize = True Me.Filled_RadioButton.Location = New System.Drawing.Point(3, 72) Me.Filled_RadioButton.Name = "Filled_RadioButton" Me.Filled_RadioButton.Size = New System.Drawing.Size(49, 17) Me.Filled_RadioButton.TabIndex = 12 Me.Filled_RadioButton.Text = "Filled" Me.Filled_RadioButton.UseVisualStyleBackColor = True ' 'Regular_RadioButton ' Me.Regular_RadioButton.AutoSize = True Me.Regular_RadioButton.Location = New System.Drawing.Point(3, 3) Me.Regular_RadioButton.Name = "Regular_RadioButton" Me.Regular_RadioButton.Size = New System.Drawing.Size(62, 17) Me.Regular_RadioButton.TabIndex = 13 Me.Regular_RadioButton.Text = "Regular" Me.Regular_RadioButton.UseVisualStyleBackColor = True ' 'Cappuccino_RadioButton ' Me.Cappuccino_RadioButton.AutoSize = True Me.Cappuccino_RadioButton.Location = New System.Drawing.Point(3, 26) Me.Cappuccino_RadioButton.Name = "Cappuccino_RadioButton" Me.Cappuccino_RadioButton.Size = New System.Drawing.Size(82, 17) Me.Cappuccino_RadioButton.TabIndex = 14 Me.Cappuccino_RadioButton.Text = "Cappuccino" Me.Cappuccino_RadioButton.UseVisualStyleBackColor = True ' 'TableLayoutPanel1 ' Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.TableLayoutPanel1.AutoSize = True Me.TableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink Me.TableLayoutPanel1.ColumnCount = 2 Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) Me.TableLayoutPanel1.Controls.Add(Me.Total_Label, 1, 2) Me.TableLayoutPanel1.Controls.Add(Me.Label5, 0, 2) Me.TableLayoutPanel1.Controls.Add(Me.Tax_Label, 1, 1) Me.TableLayoutPanel1.Controls.Add(Me.Label3, 0, 1) Me.TableLayoutPanel1.Controls.Add(Me.SubTotal_Label, 1, 0) Me.TableLayoutPanel1.Controls.Add(Me.Label1, 0, 0) Me.TableLayoutPanel1.Location = New System.Drawing.Point(67, 133) Me.TableLayoutPanel1.Name = "TableLayoutPanel1" Me.TableLayoutPanel1.RowCount = 3 Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) Me.TableLayoutPanel1.Size = New System.Drawing.Size(140, 57) Me.TableLayoutPanel1.TabIndex = 9 ' 'Total_Label ' Me.Total_Label.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Total_Label.AutoSize = True Me.Total_Label.Location = New System.Drawing.Point(80, 41) Me.Total_Label.Margin = New System.Windows.Forms.Padding(10, 3, 10, 3) Me.Total_Label.Name = "Total_Label" Me.Total_Label.Size = New System.Drawing.Size(39, 13) Me.Total_Label.TabIndex = 5 Me.Total_Label.Text = "Label6" ' 'Label5 ' Me.Label5.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label5.AutoSize = True Me.Label5.Location = New System.Drawing.Point(10, 41) Me.Label5.Margin = New System.Windows.Forms.Padding(10, 3, 10, 3) Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(31, 13) Me.Label5.TabIndex = 4 Me.Label5.Text = "Total" ' 'Tax_Label ' Me.Tax_Label.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Tax_Label.AutoSize = True Me.Tax_Label.Location = New System.Drawing.Point(80, 22) Me.Tax_Label.Margin = New System.Windows.Forms.Padding(10, 3, 10, 3) Me.Tax_Label.Name = "Tax_Label" Me.Tax_Label.Size = New System.Drawing.Size(39, 13) Me.Tax_Label.TabIndex = 3 Me.Tax_Label.Text = "Label4" ' 'Label3 ' Me.Label3.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label3.AutoSize = True Me.Label3.Location = New System.Drawing.Point(10, 22) Me.Label3.Margin = New System.Windows.Forms.Padding(10, 3, 10, 3) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(25, 13) Me.Label3.TabIndex = 2 Me.Label3.Text = "Tax" ' 'SubTotal_Label ' Me.SubTotal_Label.Anchor = System.Windows.Forms.AnchorStyles.Left Me.SubTotal_Label.AutoSize = True Me.SubTotal_Label.Location = New System.Drawing.Point(80, 3) Me.SubTotal_Label.Margin = New System.Windows.Forms.Padding(10, 3, 10, 3) Me.SubTotal_Label.Name = "SubTotal_Label" Me.SubTotal_Label.Size = New System.Drawing.Size(39, 13) Me.SubTotal_Label.TabIndex = 1 Me.SubTotal_Label.Text = "Label2" ' 'Label1 ' Me.Label1.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(10, 3) Me.Label1.Margin = New System.Windows.Forms.Padding(10, 3, 10, 3) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(50, 13) Me.Label1.TabIndex = 0 Me.Label1.Text = "SubTotal"%0 </code></pre>