title: Format a textbox to always show $ sign
body: <p>I need a textbox that keeps a dollar sign in it. I don't want the user to be allowed to not use it in the text box. </p>
  
  <p>Here is the code that I have that does a pretty good job. Now I just need to hard code a $ at the beginning somehow.</p>
  
  <pre><code> Private Sub txtPriceAmount_KeyDown(ByVal sender As Object, ByVal e As  System.Windows.Forms.KeyEventArgs) Handles txtPriceAmount.KeyDown
      If (e.KeyCode &gt;= Keys.D0 And e.KeyCode &lt;= Keys.D9) OrElse (e.KeyCode &gt;= Keys.NumPad0 And e.KeyCode &lt;= Keys.NumPad9) OrElse e.KeyCode = Keys.Back Then
          acceptableKey = True
      Else
          acceptableKey = False
      End If
  
  End Sub
  
  Private Sub txtPriceAmount_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtPriceAmount.KeyPress
  
  
      ' Check for the flag being set in the KeyDown event.
      If acceptableKey = False Then
          ' Stop the character from being entered into the control since it is non-numerical.
          e.Handled = True
          Return
      Else
          'must be in first position
  
  
          If e.KeyChar = Convert.ToChar(Keys.Back) Then
              If strCurrency.Length &gt; 0 Then
                  strCurrency = strCurrency.Substring(0, strCurrency.Length - 1)
              End If
          Else
              strCurrency = strCurrency &amp; e.KeyChar
          End If
  
          If strCurrency.Length = 0 Then
              txtPriceAmount.Text = ""
          ElseIf strCurrency.Length = 1 Then
              txtPriceAmount.Text = "0.0" &amp; strCurrency
          ElseIf strCurrency.Length = 2 Then
              txtPriceAmount.Text = "0." &amp; strCurrency
          ElseIf strCurrency.Length &gt; 2 Then
              txtPriceAmount.Text = strCurrency.Substring(0, strCurrency.Length - 2) &amp; "." &amp; strCurrency.Substring(strCurrency.Length - 2)
          End If
          txtPriceAmount.Select(txtPriceAmount.Text.Length, 0)
  
      End If
      e.Handled = True
  End Sub
  </code></pre>
  
  <p>Entire Code.</p>
  
  <p>Public Class frmMidtermProject</p>
  
  <pre><code>Dim strCurrency As String = ""
  Dim acceptableKey As Boolean = False
  
  
  'Module level declarations
  Structure Product
      Dim ProductIDString As String
      Dim DescriptionString As String
      Dim QuantityInteger As Integer
      Dim PriceDecimal As Decimal
  
  
  
  End Structure
  
  Private NumberProductsInteger As Integer = 37
  Private InventoryProduct(NumberProductsInteger) As Product
  Private TotalDueDecimal As Decimal 'total due for a customer
  
  'Array to store the total sales for each product
  Private ProductSalesTotalDecimal(NumberProductsInteger) As Decimal
  
  
  Private Sub Load_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  
      Me.lblTimeDate.Text = CStr(Date.Now)
  
      'Initialize values - InventoryProduct array
      InventoryProduct(0).ProductIDString = "102-1091"
      InventoryProduct(0).DescriptionString = "2x4-92 &amp; Chr(96)  5/8  SPF  STUD"
  
      InventoryProduct(1).ProductIDString = "102-1127"
      InventoryProduct(1).DescriptionString = "2x4-12'  #2 &amp;BTR  SPF  CONSTR  LUMB"
  
      InventoryProduct(2).ProductIDString = "102-1130"
      InventoryProduct(2).DescriptionString = "2x4-14'  #2&amp;BTR  SPF  CONSTR LUMB"
  
      InventoryProduct(3).ProductIDString = "102-1143"
      InventoryProduct(3).DescriptionString = "2x4-16'  5/8  #2&amp;BTR  SPF  CONSTR LUMB"
  
      InventoryProduct(4).ProductIDString = "102-1305"
      InventoryProduct(4).DescriptionString = "2x4-104  5/8  SPF  STUD"
  
      InventoryProduct(5).ProductIDString = "102-1758"
      InventoryProduct(5).DescriptionString = "2x6-8'  STD/#2&amp;BTR  SPF  CONSTR LUMB"
  
      InventoryProduct(6).ProductIDString = "102-1774"
      InventoryProduct(6).DescriptionString = "2x6-12' #2&amp;BTR  SPF  CONSTR LUMB"
  
      InventoryProduct(7).ProductIDString = "102-1923"
      InventoryProduct(7).DescriptionString = "2x8-16' #2&amp;BTR  SPF  CONSTR LUMB"
  
      InventoryProduct(8).ProductIDString = "102-2184"
      InventoryProduct(8).DescriptionString = "2x12-16'  #2&amp;BTR  SPF  CONSTR LUMB"
  
      InventoryProduct(9).ProductIDString = "106-1501"
      InventoryProduct(9).DescriptionString = "1-3/4x11-7/8  10'  LVL"
  
      InventoryProduct(10).ProductIDString = "106-2089"
      InventoryProduct(10).DescriptionString = "1-3/4x11-7/8  10'  LVL"
  
      InventoryProduct(11).ProductIDString = "106-2115"
      InventoryProduct(11).DescriptionString = "1-3/4x14  14'  LVL"
  
      InventoryProduct(12).ProductIDString = "106-2144"
      InventoryProduct(12).DescriptionString = "1-3/4x14  18'  LVL"
  
      InventoryProduct(13).ProductIDString = "106-2209"
      InventoryProduct(13).DescriptionString = "1-3/4x14  26'  20'  LVL"
  
      InventoryProduct(14).ProductIDString = "106-6742"
      InventoryProduct(14).DescriptionString = "2-1/2X14-18' I Joist  NI-60/PRi-60"
  
      InventoryProduct(15).ProductIDString = "106-6768"
      InventoryProduct(15).DescriptionString = "2-1/2X14-18' I Joist  NI-60/PRi-60"
  
      InventoryProduct(16).ProductIDString = "106-6807"
      InventoryProduct(16).DescriptionString = "2-1/2X14-24' I Joist  NI-60/PRi-60"
  
      InventoryProduct(17).ProductIDString = "106-8106"
      InventoryProduct(17).DescriptionString = "2-1/2X14-12' I Joist  RIM BOARD"
  
      InventoryProduct(18).ProductIDString = "111-0834"
      InventoryProduct(18).DescriptionString = "2x4-12'  AC2 TREATED  AG LIFETIME WTY"
  
      InventoryProduct(19).ProductIDString = "111-0847"
      InventoryProduct(19).DescriptionString = "2x4-14'  AC2 TREATED  AG LIFETIME WTY"
  
      InventoryProduct(20).ProductIDString = "124-2728"
      InventoryProduct(20).DescriptionString = "7/16  (14/32)-4 XB  OSB 3-WHITE STRIPES"
  
      InventoryProduct(21).ProductIDString = "124-2809"
      InventoryProduct(21).DescriptionString = "1/2  (16/32)-4 XB  OSB 2-WHITE BLAK  STRIPES"
  
      InventoryProduct(22).ProductIDString = "124-2867"
      InventoryProduct(22).DescriptionString = "3/4  (23/32)-4 XB  OSB T&amp;G 5-WHITE STRIPES"
  
      InventoryProduct(23).ProductIDString = "131-1248"
      InventoryProduct(23).DescriptionString = "1/2x4'-12'  GYPsum  78LBL"
  
      InventoryProduct(24).ProductIDString = "131-1256"
      InventoryProduct(24).DescriptionString = "1/2x4'-8'  MOLD/MR  78LBL"
  
      InventoryProduct(25).ProductIDString = "131-1259"
      InventoryProduct(25).DescriptionString = "5/8x4'-8'  MOLD/MR TYPR X   105LBL"
  
      InventoryProduct(26).ProductIDString = "131-1303"
      InventoryProduct(26).DescriptionString = "5/8X4-12'  GYPS PC TYPE  X 105LBL"
  
      InventoryProduct(27).ProductIDString = "131-2454"
      InventoryProduct(27).DescriptionString = "8' METAL 1-1/4 CORNERBEAD"
  
      InventoryProduct(28).ProductIDString = "131-2726"
      InventoryProduct(28).DescriptionString = "ALL PURPOSE PALE-BLACK 7GAL"
  
      InventoryProduct(29).ProductIDString = "131-2849"
      InventoryProduct(29).DescriptionString = "EZ SAND  90  18#"
  
      InventoryProduct(30).ProductIDString = "131-2881"
      InventoryProduct(30).DescriptionString = "SPRAY-TEXTURE MEDIUM  40#"
  
      InventoryProduct(31).ProductIDString = "131-3097"
      InventoryProduct(31).DescriptionString = "PROROC JOINT TAPE  250'"
  
      InventoryProduct(32).ProductIDString = "165-0372"
      InventoryProduct(32).DescriptionString = "M/H208  ANJ COLUMN 3INCH DIAM -8'4"
  
      InventoryProduct(33).ProductIDString = "227-1442"
      InventoryProduct(33).DescriptionString = "NAIL 1-1/2 JOIST HANGER   5LB GALV"
  
      InventoryProduct(34).ProductIDString = "228-3142"
      InventoryProduct(34).DescriptionString = "JOIST HNGR  TM 2.5X14  THO54140"
  
      InventoryProduct(35).ProductIDString = "229-1202"
      InventoryProduct(35).DescriptionString = "NAIL 8D  V.C.  SINKERS   50LBL BOX"
  
      InventoryProduct(36).ProductIDString = "229-1244"
      InventoryProduct(36).DescriptionString = "NAIL 16D  V.C.  SINKERS   50LBL BOX"
  
      InventoryProduct(37).ProductIDString = "229-1303"
      InventoryProduct(37).DescriptionString = "NAIL 16D  GALVANZED BOX  50LBL BOX"
  
  End Sub
  
  Private Sub SearchBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearchProducts.Click
  
      'Search the ProductIDString property of the inventoryProduct
      'array to see if the value of ProductIDTextBox matches an ID 
      'in the array
  
      'Start variables to control the search
      Dim FoundBoolean As Boolean = False  'Control how long to search
      Dim RowInteger As Integer = 0        'Current row in the search
  
      'Loop to do the search
      Do Until FoundBoolean = True Or RowInteger &gt; NumberProductsInteger
  
          'Compare textBox to array
          If txtProductID.Text = InventoryProduct(RowInteger).ProductIDString Then
  
              'found a match - display other data to the readonly textboxes
              cboProductIDLookup.SelectedItem = txtProductID.Text
              txtDescription.Text = InventoryProduct(RowInteger).DescriptionString
              txtQuantityAmount.Text = InventoryProduct(RowInteger).QuantityInteger.ToString
              txtPriceAmount.Text = InventoryProduct(RowInteger).PriceDecimal.ToString("C2")
  
              'change variable to indicate we have a match
              FoundBoolean = True
          Else
              'no match yet
              RowInteger += 1
          End If
      Loop
  
      'After the search determine if the ProductID was found
  
      If FoundBoolean = False Then  'no match was found
          'Clear the textbox controls that display product information
          'except for the ProductID textbox
          txtDescription.Clear()
          txtQuantityAmount.Clear()
          txtPriceAmount.Clear()
          cboProductIDLookup.SelectedIndex = -1
  
          'Display message that the ProductID is not valid
          MessageBox.Show("Reenter a valid product ID.", "Invalid Identifier", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
          txtProductID.Focus()
          txtProductID.SelectAll()
      End If
  End Sub
  
  Private Sub PurchaseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PurchaseToolStripMenuItem.Click
  
  
  
      'Test to determine if a product was found.
      If txtDescription.Text = String.Empty Then
  
          'Cannot purchase, product was not found
          MessageBox.Show("You must select a valid product before purchasing.", "Cannot Purchase", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
          txtProductID.Focus()
          txtProductID.SelectAll()
      Else
          'Can purchase the product
          'Build a string to display in the listbox control
  
          Dim ProductString As String = txtProductID.Text.PadRight(12, " ") &amp; "" &amp; txtDescription.Text.PadRight(50, " ") &amp; "" &amp; txtQuantityAmount.Text.PadRight(7, " ") &amp; "" &amp; txtPriceAmount.Text.PadLeft(9, " ")
          lstPurchaseItems.Items.Add(ProductString)
          '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
          'Accumulate the total value of this customer order
          'and display it to the output textbox
          TotalDueDecimal += (txtPriceAmount.Text * txtQuantityAmount.Text)
          txtTotalDueAmount.Text = TotalDueDecimal.ToString("C2")
          'TotalDueTextBox.Text = QuantityTextBox.Text * TotalDueDecimal.ToString("C2")
  
          'Accumulate total sales by product to an array
          Dim IndexInteger As Integer = cboProductIDLookup.SelectedIndex
          ProductSalesTotalDecimal(IndexInteger) += (txtPriceAmount.Text * txtQuantityAmount.Text)
  
          'Here you can clear the form of product info if you think
          'that is a good way to do the processing
          cboProductIDLookup.SelectedIndex = -1
          txtProductID.Clear()
          txtDescription.Clear()
          txtPriceAmount.Clear()
          txtQuantityAmount.Clear()
          txtProductID.Focus()
      End If
  End Sub
  
  Private Sub ResetToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetToolStripMenuItem.Click
      'Clear all text box and combobox controls
      cboProductIDLookup.SelectedIndex = -1
      txtProductID.Clear()
      txtDescription.Clear()
      txtPriceAmount.Clear()
      txtQuantityAmount.Clear()
      txtTotalDueAmount.Clear()
  
      'Clear the list box control
      lstPurchaseItems.Items.Clear()
  
      'Reset the total due module-level variable to zero
      TotalDueDecimal = 0
  
      'Set the focus to the product ID text box
      txtProductID.Focus()
  End Sub
  
  
  Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
      Dim MessageString As String = "John Burton Version 1" &amp; ControlChars.NewLine &amp; "Today's date/time: " &amp; Date.Now
      Dim TitleString As String = "About Version 1"
  
      MessageBox.Show(MessageString, TitleString, MessageBoxButtons.OK, MessageBoxIcon.Information)
  End Sub
  
  Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
  
      'Close the form
      Me.Close()
  End Sub
  
  Private Sub ProductIDComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboProductIDLookup.SelectedIndexChanged
  
  
      'Test to determine if a product has been selected
      If cboProductIDLookup.SelectedIndex &lt;&gt; -1 Then
  
          'Store the selectedIndex to variable
          Dim RowInteger As Integer = cboProductIDLookup.SelectedIndex
  
          'Based on RowInteger, display values to TextBox controls
          'from the array named inventoryProduct
          txtProductID.Text = InventoryProduct(RowInteger).ProductIDString
          txtDescription.Text = InventoryProduct(RowInteger).DescriptionString
          txtQuantityAmount.Text = InventoryProduct(RowInteger).QuantityInteger.ToString("N0")
          txtPriceAmount.Text = InventoryProduct(RowInteger).PriceDecimal.ToString("C2")
  
      End If
  
      If Not IsNumeric(txtQuantityAmount.Text) Then
          MsgBox("Numeric input only!", vbCritical, "Invalid Input")
          txtQuantityAmount.Text = ""
      End If
  End Sub
  
  Private Sub TotalSalesByProductToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TotalSalesByProductToolStripMenuItem.Click
      'Display output to immediate window
      Dim RowInteger As Integer
      Dim SalesString As String = "ProductID" &amp; vbTab &amp; vbTab &amp; "Amount" &amp; vbCrLf
      For Each ProductItem As Product In InventoryProduct
          'Build string to display
          SalesString &amp;= ProductItem.ProductIDString.PadLeft(8, " ") &amp; vbTab &amp; vbTab &amp; ProductSalesTotalDecimal(RowInteger).ToString("C2").PadLeft(12, " ") &amp; vbCrLf
  
  
          'Increment RowInteger
          RowInteger += 1
      Next
      SalesString &amp;= "" &amp; vbCrLf
      SalesString &amp;= "Total Due" &amp; vbTab &amp; vbTab &amp; txtTotalDueAmount.Text &amp; vbCrLf
  
  
      Dim Answer As String
      Dim MyNote As String
  
      MyNote = MessageBox.Show(SalesString, "Sales Totals, Do you want to save this File", MessageBoxButtons.OK, MessageBoxIcon.Information)
      MyNote = "Do you want to save the Sales Totals Summary to File?"
      Answer = MsgBox(MyNote, vbYesNo, "Sales Totals to File")
  
      If Answer = vbNo Then
          'Code for No Responce
      End If
  
      If Answer = vbYes Then
          'Code for Yes Responce
          sFile.InitialDirectory = ("C:\")
          sFile.FileName = ("Save As...")
          sFile.Filter = ("Only Text Files (*.txt)|*.txt")
          sFile.ShowDialog()
  
          Dim W As New IO.StreamWriter(sFile.FileName, True)  ' notes from class need messgbox
          W.WriteLine(lblTimeDate.Text &amp; vbCrLf &amp; vbCrLf &amp; txtJobFileName.Text)
          W.WriteLine()
          W.WriteLine()
  
          W.WriteLine(SalesString)
          W.Close()
      End If
  End Sub
  
  
  Private Sub SearchToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SearchToolStripMenuItem.Click
      'Call the Click event for theSearch button control
      btnSearchProducts.PerformClick()
  End Sub
  
  
  Private Sub SaveAsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveAsToolStripMenuItem.Click
      sFile.InitialDirectory = ("C:\")
      sFile.FileName = ("Save As...")
      sFile.Filter = ("Only Text Files (*.txt)|*.txt")
      sFile.ShowDialog()
  
      Dim W As New IO.StreamWriter(sFile.FileName, True)  ' notes from class need messgbox
      W.WriteLine(lblTimeDate.Text &amp; "             " &amp; txtJobFileName.Text)
      W.WriteLine()
      W.WriteLine()
  
      Dim ProductString As String = lblSkuNumper.Text.PadRight(12, " ") &amp; "" &amp; lblDescription.Text.PadLeft(27, " ") &amp; "" &amp; lblQuantityAmount.Text.PadLeft(28, " ") &amp; "" &amp; lblPriceAmount.Text.PadLeft(11, " ")
      W.WriteLine(ProductString)
      W.WriteLine()
  
      Dim i As Integer
      For i = 0 To lstPurchaseItems.Items.Count - 1
          W.WriteLine(lstPurchaseItems.Items.Item(i))
  
      Next
      W.WriteLine()
      W.WriteLine()
      Dim TotalDue As String = txtTotalDueAmount.Text.PadLeft(70, ".")
      W.WriteLine(vbTab &amp; vbTab &amp; vbTab &amp; vbTab &amp; vbTab &amp; vbTab &amp; "TotalDue" &amp; txtTotalDueAmount.Text.PadLeft(22, ""))
      W.Close()
  End Sub
  
  
  Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExitDesign.Click
      Me.Close()
  End Sub
  
  Private Sub btnResetClearItems_Click(sender As Object, e As EventArgs) Handles btnResetClearItems.Click
      ResetToolStripMenuItem.PerformClick()
  End Sub
  
  Private Sub txtQuantityAmount_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtQuantityAmount.KeyPress
      If (e.KeyChar &lt; "0" OrElse e.KeyChar &gt; "9") AndAlso
          e.KeyChar &lt;&gt; ControlChars.Back Then
          e.Handled = True
      End If
      ' use this to add any special characters..............e.KeyChar &lt;&gt; "." AndAlso
  End Sub
  
  
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnSearchDescription.Click
      'Search the ProductIDString property of the inventoryProduct
      'array to see if the value of ProductIDTextBox matches an ID 
      'in the array
  
      'Start variables to control the search
      Dim FoundBoolean As Boolean = False  'Control how long to search
      Dim RowInteger As Integer = 0        'Current row in the search
  
      'Loop to do the search
      Do Until FoundBoolean = True Or RowInteger &gt; NumberProductsInteger
  
          'Compare textBox to array
          If txtDescription.Text = InventoryProduct(RowInteger).DescriptionString Then 'If txtProductID.Text = InventoryProduct(RowInteger).ProductIDString Then
  
  
              'found a match - display other data to the readonly textboxes
              txtProductID.Text = InventoryProduct(RowInteger).ProductIDString
              cboProductIDLookup.SelectedItem = txtProductID.Text
              txtDescription.Text = InventoryProduct(RowInteger).DescriptionString
              txtQuantityAmount.Text = InventoryProduct(RowInteger).QuantityInteger.ToString
              txtPriceAmount.Text = InventoryProduct(RowInteger).PriceDecimal.ToString("C2")
  
              'change variable to indicate we have a match
              FoundBoolean = True
          Else
              'no match yet
              RowInteger += 1
          End If
      Loop
  
      'After the search determine if the ProductID was found
  
      If FoundBoolean = False Then  'no match was found
          'Clear the textbox controls that display product information
          'except for the ProductID textbox
          txtDescription.Clear()
          txtQuantityAmount.Clear()
          txtPriceAmount.Clear()
          cboProductIDLookup.SelectedIndex = -1
  
          'Display message that the ProductID is not valid
          MessageBox.Show("Reenter a valid product ID.", "Invalid Identifier", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
          txtProductID.Focus()
          txtProductID.SelectAll()
      End If
  
  End Sub
  
  Private Sub txtPriceAmount_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtPriceAmount.KeyDown
      If (e.KeyCode &gt;= Keys.D0 And e.KeyCode &lt;= Keys.D9) OrElse (e.KeyCode &gt;= Keys.NumPad0 And e.KeyCode &lt;= Keys.NumPad9) OrElse e.KeyCode = Keys.Back Then
          acceptableKey = True
      Else
          acceptableKey = False
      End If
  
  End Sub
  
  Private Sub txtPriceAmount_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtPriceAmount.KeyPress
  
  
      ' Check for the flag being set in the KeyDown event.
      If acceptableKey = False Then
          ' Stop the character from being entered into the control since it is non-numerical.
          e.Handled = True
          Return
      Else
          'must be in first position
  
  
          If e.KeyChar = Convert.ToChar(Keys.Back) Then
              If strCurrency.Length &gt; 0 Then
                  strCurrency = strCurrency.Substring(0, strCurrency.Length - 1)
              End If
          Else
              strCurrency = strCurrency &amp; e.KeyChar
          End If
  
          If strCurrency.Length = 0 Then
              txtPriceAmount.Text = ""
          ElseIf strCurrency.Length = 1 Then
              txtPriceAmount.Text = "0.0" &amp; strCurrency
          ElseIf strCurrency.Length = 2 Then
              txtPriceAmount.Text = "0." &amp; strCurrency
          ElseIf strCurrency.Length &gt; 2 Then
              txtPriceAmount.Text = strCurrency.Substring(0, strCurrency.Length - 2) &amp; "." &amp; strCurrency.Substring(strCurrency.Length - 2)
          End If
          txtPriceAmount.Select(txtPriceAmount.Text.Length, 0)
  
      End If
      e.Handled = True
  End Sub
  
  
  
  Private Sub btnPurchaseItems_Click(sender As Object, e As EventArgs) Handles btnPurchaseItems.Click
      PurchaseToolStripMenuItem.PerformClick()
  End Sub
  </code></pre>
  
  <p>End Class</p>