所以基本上你有一個只顯示一個標籤(lblTotalPrice)的主表單和一個按鈕,當你點擊它時,它會打開另一個包含不同價格包(lstPackages)的列表框。您如何從lstPackages中選擇一個項目並將其返回到lblTotalPrice,它位於主窗體上?如何將第二種形式的列表框上的選定項目返回到Visual Basic中的主窗體?
我試圖用一個函數代碼(認爲這將是對計算很有用),但似乎沒有奏效:
在我的第二個形式,我填充lstPackages與它的使用並行陣列名:
Dim strPackages As String = {"Package 1", "Package 2", "Package 3", "Package 4", "Package 5"}
Dim decPrice As String = {100D, 200D, 300D, 400D, 500D}
Private Sub SecondForm_Activated(sender As Object, e As EventArgs) Handles MyBase.Activate
Dim frmMain as New
Dim i As Integer
For i = 0 To strPackages.Length - 1
lstPackages.Items.Add(strPackages(i))
Next
End Sub
之後,我嘗試選擇上lstPackages的值,但我不是太肯定,如果我用的是正確的代碼來選擇項目,並返回到主窗體:
Function CalcPackage()
Dim decPackages As Decimal = 0D
If lstPackages.SelectedIndex = -1 Then
MessageBox.Show("Select a package")
Else
For i = 0 To lstPackages.SelectedItem - 1
decPackages = lstPackages.SelectedItem(i)
Next i
End If
Return decPackages
End Function
當我選擇了lstPackages的項目,我想選擇的項目發回的主要形式,但遇到了一個問題在這裏:
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnClose.Click
Dim frmMainForm As New MainForm
Dim decTotal As Decimal
decTotal = CalcPackage()
'I was stuck in this part and wasn't sure how to return it to lblTotalPrice (and also close the second form too)
frmMainForm.lblTotalPrice.Text = decTotal.ToString("c")
frmMainForm.Show()
Me.Close()
End Sub
所以啊,對不起,如果我的代碼很奇怪,但我'm希望得到如何返回項目的價值,以在主窗體上的lblTotalPrice的幫助,謝謝你們
表格是其他對象。將第一個表單的引用傳遞給第二個表單實例,通過從第一個表單調用方法/屬性/字段來設置值。 – SJuan76
你可以在名爲'SelectedPackage'的窗體上創建一個屬性,並通過選擇的方式。 – Plutonix