Dim lviCurrentPort As New ListViewItem
Dim dblTotalValue As Double = 0
Dim strTicker, strPrice, strShares, strBasis, strValue, strTotalValue, strTickerList, strSelectionTicker, strNewTicker, strNewShares As String
Dim strNewBasis, strNewPrice As String
Dim dblPrice, dblshares, dblBasis, dblValue As Double
Dim intStockCOunt, intListCount, intSelectedTicker, intSelectedTickers, intIndex As Integer
Dim exactMatch As Boolean
Dim intRow As Integer = 0
' If the user leaves one of the fields blank, it will produce an error and give focus to that specific
' field.
Private Sub btnAddStock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddStock.Click
If txtTicker.Text = "" Then
MessageBox.Show("Oops.. you left Ticker blank", "Ticker Blank")
txtTicker.Focus()
ElseIf txtShares.Text = "" Then
MessageBox.Show("Oops..you left Shares blank", "Shares Blank")
txtShares.Focus()
ElseIf txtPrice.Text = "" Then
MessageBox.Show("Oops..you left Price blank", "Price Blank")
txtPrice.Focus()
End If
'Line 510 ensures that the three fields are not blank.
Do While txtTicker.Text.ToString <> "" And txtShares.Text.ToString <> "" And txtPrice.Text.ToString <> ""
' Converts the number entered in the Price field to a double data type.
dblPrice = Convert.ToDouble(txtPrice.Text)
' Converts the number entered in the Shares field to a double data type.
dblshares = Convert.ToDouble(txtShares.Text)
' Creates a variable by multiplying Price * Shares
dblBasis = dblPrice * dblshares
' Creates a variable by multiplying Price & Shares
dblValue = dblPrice * dblshares
' Creates a variable by adding Total Value & Value
dblTotalValue = dblTotalValue + dblValue
' Converts the Basis field to a string
strBasis = Convert.ToString(dblBasis)
' Converts the Value field to a string
strValue = Convert.ToString(dblValue)
' Converts the Total Value field to a string
strTotalValue = Convert.ToString(dblTotalValue)
' Creates a new list view item called lviCurrentPort with the first item
' being the Ticker field.
lviCurrentPort = New ListViewItem(txtTicker.Text)
' Adds the Basis subitem and converts it to a Currency.
lviCurrentPort.SubItems.Add(Format$(strBasis, "Currency"))
' Adds the Shares sub item.
lviCurrentPort.SubItems.Add(txtShares.Text)
' Adds the Price sub item and converts it to a Currency.
lviCurrentPort.SubItems.Add(Format$(txtPrice.Text, "Currency"))
' Adds the Value sub item and converts it to a Currency.
lviCurrentPort.SubItems.Add(Format$(strValue, "Currency"))
' Loop that check each item in the list view box.
intListCount = Convert.ToInt32(lstCurrentPort.Items.Count)
For intRow = 0 To intListCount - 1
' If the text in the Ticker field matches any Item in the list view box, an error
' message will display and focus will be given to the Ticker field.
strTicker = Convert.ToString(txtTicker.Text)
strTickerList = Convert.ToString(lstCurrentPort.Items(intRow).Text)
If strTicker = strTickerList Then
exactMatch = True
Else
exactMatch = False
End If
Next
If exactMatch = True Then
MessageBox.Show("Duplicate Detected")
txtTicker.Text = ""
txtTicker.Focus()
End If
If exactMatch = False Then
' Takes the listviewitem created with all the items & subitems and adds it to the
' List View Box called lstCurrentPort
lstCurrentPort.Items.Add(lviCurrentPort)
' Once a duplicate is not found, these lines of code will run.
txtTotalValue.Text = Format$(strTotalValue, "Currency")
txtTicker.Text = ""
txtShares.Text = ""
txtPrice.Text = ""
strNewTicker = lstCurrentPort.Items(intSelectedTickers).ToString
strNewBasis = lstCurrentPort.Items(intSelectedTickers).SubItems(1).ToString
strNewShares = lstCurrentPort.Items(intSelectedTickers).SubItems(2).ToString
strNewPrice = lstCurrentPort.Items(intSelectedTickers).SubItems(2).ToString
' If the lines of code is greater than 10, an error message will display.
If lstCurrentPort.Items.Count > 10 Then
MessageBox.Show("Trial Version only allows 10 entries")
End If
End If
Loop
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub lstCurrentPort_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstCurrentPort.SelectedIndexChanged
For intSelectedTicker = 1 To lstCurrentPort.SelectedIndices.Count
strSelectionTicker = intSelectedTicker.ToString
txtCurrentSelect.Text = strSelectionTicker
Next
End Sub
Private Sub btnGetData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetData.Click
txtNewTicker.Text = strNewTicker.ToString
txtNewBasis.Text = strNewBasis.ToString
txtNewShares.Text = strNewShares.ToString
txtNewPrice.Text = strNewPrice.ToString