0

我正在和我的朋友一起完成一项任务。我就如何进行循环寻求帮助,他给了我那部分的代码。所以我复制并粘贴到vb中。它适用于他,但每次我尝试调试它时,我都会收到“未处理空异常”的标志。但它不仅仅是一条线。拳头它从 LstInvoice.items.clear() 开始,但如果我删除它,它会遍历所有行。到底是怎么回事?我之前在其他任务中使用过 LstInvoice.items.clear() 并且以前从未遇到过这个问题。这是我的代码:

Private Sub btnStraight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStraight.Click
        Dim Cost As Double

        Cost = txtCost.Text
        Dim Salvage_Value As Double
        Salvage_Value = 0
        Dim Life As Double
        Life = txtLife.Text
        Dim Depreciation As Double
        Depreciation = (Cost / Life)
        Dim c As Integer, i As Integer, x As Integer, y As Integer, z As Integer
        c = CInt(CDbl(txtYear.Text))
        i = CInt(txtLife.Text)
        x = CInt(txtCost.Text)
        y = CInt(CDbl(x) / i)
        z = x - y
        LstInvoice.items.clear()
        LstInvoice.Items.Add("Description: " & "" & txtDescription.Text)
        LstInvoice.Items.Add("Year of purchase: " & txtYear.Text)
        LstInvoice.Items.Add("Cost: " & FormatCurrency(txtCost.Text))
        LstInvoice.Items.Add("Estimated life:" & txtLife.Text)
        LstInvoice.Items.Add("Method of Depresciation: straight-line method")
        LstInvoice.Items.Add("")
        LstInvoice.Items.Add("Value beginning of " & c & ": " & FormatCurrency(CInt(txtCost.Text)))
        LstInvoice.Items.Add("Amount of depreciation accruing: " & c & ": " & FormatCurrency(y))
        LstInvoice.Items.Add("Total depreaciation at end of " & c & ": " & FormatCurrency(z))
        LstInvoice.Items.Add("")
        c = c + 1
        Do While (x > 0)
            y = CInt(CDbl(x) / i)
            z = x - y
            x = z
            LstInvoice.Items.Add("Value beginning of " & c & ": " & FormatCurrency(x))
            LstInvoice.Items.Add("Amount of depreciation accruing: " & c & ": " & FormatCurrency(y))
            LstInvoice.Items.Add("Total depreaciation at end of " & c & ": " & FormatCurrency(z))
            LstInvoice.Items.Add("")
            i = i - 1
            c = c + 1
        Loop
4

2 回答 2

0

您没有正确地大写所有内容,它应该如下所示:

LstInvoice.Items.Clear()

注意大写字母 I 和 C。

于 2013-04-08T23:08:06.923 回答
0

我用一个项目测试了完全相同的代码。

正如 Cody Gray 已经提到的,您可能添加了错误的控件作为 lstInvoice。使用列表框。

你所做的是在粘贴代码后选择一个代码修复,并为 lstInvoice 生成一个代码存根,它在代码底部创建以下方法:

Private Function LstInvoice() As Object
    Throw New NotImplementedException
End Function

如果您忘记了命名空间引用,这些更正提供了一些有效的修复,但通常它无法猜测代码的含义是哪个控件。

所以请删除此函数,转到表单(我想它不是控制台应用程序),打开工具箱,然后将ListBox拖放到您的表单中。最后将该 ListBox 名称从 ListBox1 重命名为lstInvoice并检查您的代码现在是否正常工作。

于 2013-04-08T23:24:38.683 回答