论证'表达'无法转换为' ObjectCollection'

时间:2015-01-04 02:54:09

标签: vb.net arguments expression

我是VB新手,我试图划分两个列表框的内容。但是,每次我尝试它时都会出现错误,例如;论证'表达'无法转换为' ObjectCollection'。我一直在改变代码,但从那以后就没有运气了。我非常感谢任何帮助,谢谢!

    Dim pSmokers As Short
    pSmokers = (Val(lstSmoker.Items)) / (Val(lstTotal.Items)) * 100
    lstTotal.Items.Add(pSmokers)

1 个答案:

答案 0 :(得分:0)

假设lstSmokerlistBox,您没有正确使用它。这不起作用

Val(lstSmoker.Items)

你需要做这样的事情

Short.Parse(lstSmoker.Items(0)) ' Where "0" is index of your item in listbox

同样,这是假设列表控件中的项目是字符串。所以你的代码会像这样说:

pSmokers = Short.Parse(lstSmoker.Items(0)) / Short.Parse(lstTotal.Items(0)) * 100

很遗憾,我不知道如何将数据保存在列表中。可能是您希望计算列表中的项目数而不是数据。然后这样做

pSmokers = lstSmoker.Items.Count / lstTotal.Items.Count * 100

!!! 但是现在你遇到问题,如果pSmokers很短,你就在这里进行划分。意思是,你会得到十进制数。因此,您需要更改pSmokers

的数据类型

你也可能会遇到" 0"如果没有吸烟者的问题。为了防止它

If lstTotal.Items.Count > 0 Then
    Dim pSmokers as Decimal = lstSmoker.Items.Count / lstTotal.Items.Count * 100
    txtTotal.text= pSmokers.ToString("G")
End If