尝试让用户在3个文本框中输入3个数字并获得平均值。

Private Sub btnAverage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAverage.Click

  Dim a As Integer = CInt(txtone.Text)        
  Dim b As Integer = CInt(txtTwo.Text)
  Dim c As Integer = CInt(txtThree.Text)
  Dim average As Integer   
  average = (a + b + c) / 3

  lstOutput.Text = average

End Sub 
有帮助吗?

解决方案

尝试将平均类型从Integer更改为Double

Dim average as Double

现在你正试图将平均值存储在一个只能包含整数的整数中。平均值往往是非整数,需要一个可以表示的数据类型。 Double适用于大多数情况。这应该可以解决你的问题。

编辑 OP提到lstOutput是一个ListBox

这是WinForms令人困惑的事情之一。尽管每个控件都有一个Text属性,但并不是所有控件都可以执行任何操作。它们仅适用于直接显示单个文本块或值的元素。 Ex按钮,标签等...

另一方面,ListBox显示一组项目。您想要将新项目添加到列表中。

lstOutput.Items.Add(average.ToString())

其他提示

列表框的Text属性将获取或设置所选项。您还没有将平均值添加到列表框中。

尝试:

<代码> lstOutput.Items.Add(平均)

你确定txtOne.text txtTwo.text和txtThree.txt总是一个整数值吗?

您可能还需要将a,b,c变量更改为双打并检查用户是否未提供非数字值。

如果用户放置“一个”,在txtOne文本框中,您将获得一个例外kablowee。

(空气编码)

   dim a as new double
   try
       if isnumeric(txtOne.text.tostring.trim) then
          a = cdbl(txtOne.text.tostring.trim)
       end if

    'repeat for b and c ...

    catch ex as exception
       messagebox.show(ex.message.tostring)
    end try

并且,我不确定我是否正确,(也许有人会启发我)但.NET在这两种情况下会考虑从字符串到int的类型转换

a  = cint(txtOne.text)

a = cint(txtOne.text.tostring)

???

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top