Vb.net 将文本加载到列表框中

Vb.net 将文本加载到列表框中,vb.net,Vb.net,我需要实现的主要目标是,在填写完所有框后,将用户输入的详细信息(如使用分钟数和总成本等)显示在一个列表中。然后,他们可以将该框/列表框中的文本保存到电脑上的txt文件中 这就是我所需要做的。我似乎无法做到这一点,也不知道如何做到这一点。这是我到目前为止的代码,它应该如何工作 Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub

我需要实现的主要目标是,在填写完所有框后,将用户输入的详细信息(如使用分钟数和总成本等)显示在一个列表中。然后,他们可以将该框/列表框中的文本保存到电脑上的txt文件中

这就是我所需要做的。我似乎无法做到这一点,也不知道如何做到这一点。这是我到目前为止的代码,它应该如何工作

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    End Sub

    Private Sub btn1TotalCost_Click(sender As Object, e As EventArgs) Handles btn1TotalCost.Click

        'Declaring the variables.
        Dim MinutesAllowed As Integer
        Dim MinutesUsed As Integer
        Dim TextsAllowed As Integer
        Dim TextsUsed As Integer
        Dim DataAllowed As Integer
        Dim DataUsed As Integer
        Dim MinutesTotalCost As Double
        Dim TextsTotalCost As Double
        Dim DataTotalCost As Double
        Dim MonthlyCost As Double
        Dim TotalCost As Double

        MinutesAllowed = Val(txtBoxMinutesAllowed.Text)
        MinutesUsed = Val(txtBoxMinutesUsed.Text)
        TextsAllowed = Val(txtBoxTextsAllowed.Text)
        TextsUsed = Val(txtBoxTextsUsed.Text)
        DataAllowed = Val(txtBoxDataAllowed.Text)
        DataUsed = Val(txtBoxDataUsed.Text)
        MinutesTotalCost = Val(txtBoxTotalCost.Text)
        TextsTotalCost = Val(txtBoxTotalCost.Text)
        DataTotalCost = Val(txtBoxTotalCost.Text)
        TotalCost = Val(txtBoxTotalCost.Text)

        'Calculation For Minutes
        MinutesAllowed = Val(txtBoxMinutesAllowed.Text)
        MinutesUsed = Val(txtBoxMinutesUsed.Text)
        MonthlyCost = Val(txtBoxMonthlyCost.Text)
        'If the minutes allowed is greater than or equal to the minutes used, no extra charge is added.
        If MinutesAllowed >= MinutesUsed Then
            MinutesTotalCost = 0
        Else 'If the minutes used is greater than the minutes allowed, each minute is multiplied by 00.30p.
            MinutesTotalCost = (MinutesUsed - MinutesAllowed) * 0.3
        End If
        txtBoxTotalCost.Text = CType(MinutesTotalCost + MonthlyCost, String)



        'Calculation For Texts
        TextsAllowed = Val(txtBoxTextsAllowed.Text)
        TextsUsed = Val(txtBoxTextsUsed.Text)
        MonthlyCost = Val(txtBoxMonthlyCost.Text)
        'If the texts allowed is greater than or equal to the texts used, no extra charge is added.
        If TextsAllowed >= TextsUsed Then
            TextsTotalCost = 0
        Else 'If the texts used is greater than the texts allowed, each text is multiplied by 00.15p.
            TextsTotalCost = (TextsUsed - TextsAllowed) * 0.15
        End If
        txtBoxTotalCost.Text = CType(TextsTotalCost + MonthlyCost, String)



        'Calculation For Data
        DataAllowed = Val(txtBoxDataAllowed.Text)
        DataUsed = Val(txtBoxDataUsed.Text)
        MonthlyCost = Val(txtBoxMonthlyCost.Text)
        'If the data allowed is greater than or equal to the data used, no extra charge is added.
        If DataAllowed >= DataUsed Then
            DataTotalCost = 0
        Else 'If the data used is greater than the data allowed, 10.00 is added to the total cost.
            DataTotalCost = 10
        End If
        txtBoxTotalCost.Text = CType(DataTotalCost + MonthlyCost + TextsTotalCost + MinutesTotalCost, Double)
    End Sub
End Class

嗯。这段代码非常诚实,不好。这些线

Dim FullName As String
Dim PhoneNumber As Decimal
Dim AccNumber As Decimal
Dim MinutesAllowed As Integer
Dim TextsAllowed As Integer
Dim DataAllowed As Integer
Dim MinutesUsed As Integer
Dim TextsUsed As Integer
Dim DataUsed As Integer
Dim MonthlyCost As Double
Dim TotalCost As Double
声明特定类型的变量-字符串、小数和整数等。这意味着它们只能接受相同类型的值。在代码中使用Option Strict On将帮助您更正这些错误,因为它将显示代码中的错误。这些线路应为:

FullName = ""
PhoneNumber = 0D
AccNumber = 0D
MinutesAllowed = 0
TextsAllowed = 0
DataAllowed = 0
MinutesUsed = 0
TextsUsed = 0
DataUsed = 0
MonthlyCost = 0R
TotalCost = 0R
出现问题的原因是无法将空字符串指定给整数或任何其他数字。当Option Strict打开时,将显示这些错误。顺便说一句,您最好将phoneNumber声明为字符串,以允许破折号和方括号等。如果TotalCost为双倍,则MonthlyCost也应为双倍

数字后的字母表示要签名的数字类型。D表示十进制0,R表示双0。然而,在您的代码中,当声明变量时,它们已经被分配了默认值,所以您实际上不需要这些行来分配值

继续

listBox.Items.Add("Full Name: " + txtBoxFullName.Text)
listBox.Items.Add("Phone Number: " + txtBoxPhoneNumber.Text)
等等

上面的行与上面的变量声明完全无关。这是故意的吗?例如,txtBoxFullName.Text与FullName根本不是同一个变量,除非您有其他代码,否则我认为没有必要使用上述变量。我猜你发布的代码不完整。当你发布一个问题时,你真的需要发布所有相关的代码。看看这里


听听普卢图尼克斯的话——他很聪明。

电话号码可能不应该是小数。为什么要设置所有的数字变量=?@LarsTech我知道,但我试过整数、双精度和十进制,但没有用。你把字符串赋给十进制。你想达到什么目的?将PhoneNumber定义为字符串或为其指定一个数值,例如0您是否正在读取代码?总成本增加一倍;总成本=没有意义,是吗?如何将空字符串分配给Double类型的变量,而不期望得到异常?现在,对您也尝试初始化的所有整数变量重复这个问题。按照Puropoix所说的做。将这一行放在代码文件的最顶端:Option Strict On