试图在VB.Net中平均10个数字有人能告诉我为什么我的代码不起作用吗?

时间:2014-03-21 00:37:22

标签: vb.net

此代码应该在表单中收集10个数字并计算平均值。当我按下计算按钮时,显示出来。为什么? *编辑我刚刚开始编程,所以我不太了解

Public Class Form1

Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Public Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

End Sub

Public Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click

End Sub

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10 As Integer
    Dim Calc As String
    Dim textbox11 As String
    Calc = TextBox1 + TextBox2 + TextBox3 + TextBox4 + TextBox5 + TextBox6 + TextBox7 + TextBox8 + TextBox9 + TextBox10 / 10
    TextBox11 = Calc


End Sub

Public Sub TextBox11_TextChanged(sender As Object, e As EventArgs) Handles TextBox11.TextChanged
    Dim TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7, TextBox8, TextBox9, TextBox10 As Integer
    Dim Calc As String
    Dim textbox11 As String
    Calc = TextBox1 + TextBox2 + TextBox3 + TextBox4 + TextBox5 + TextBox6 + TextBox7 + TextBox8 + TextBox9 + TextBox10 / 10
    textbox11 = Calc

End Sub

结束班

3 个答案:

答案 0 :(得分:0)

你有两个问题:@David Tansey已经覆盖了一个问题,即你试图将文本框控件添加到一起,而不是它们的值。另一个是你只将最后一个值除以10。

您需要将所有值放在括号中:

Calc = (TextBox1.Text + TextBox2.Text + TextBox3.Text + TextBox4.Text + TextBox5.Text + TextBox6.Text + TextBox7.Text + TextBox8.Text + TextBox9.Text + TextBox10.Text) / 10

这仍然有很多可能出错,例如如果一个值不能被视为一个数字,那就是另一个完整的对话。

答案 1 :(得分:0)

您已声明10个整数,其名称与您表单上的TextBox名称相同 您的代码对TextBox值的整数进行求和。
您可以删除整数的声明,并在将它们转换为整数值

后使用文本框中的值
Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim Calc As Integer
    Calc = (Convert.ToInt32(TextBox1.Text) + _
           Convert.ToInt32(TextBox2.Text) + _
           Convert.ToInt32(TextBox3.Text) + _
           Convert.ToInt32(TextBox4.Text) + _
           Convert.ToInt32(TextBox5.Text) + _
           Convert.ToInt32(TextBox6.Text) + _
           Convert.ToInt32(TextBox7.Text) + _
           Convert.ToInt32(TextBox8.Text) + _
           Convert.ToInt32(TextBox9.Text) + _
           Convert.ToInt32(TextBox10.Text)) / 10
   TextBox11.Text = Calc.ToString
End Sub

注意整个总和的括号和除以结果的除以10 当然这只是一个例子。还存在正确验证输入字段的问题。如果键入无法转换为整数的内容,则此代码将失败。

您可以使用Int32.TryParse方法解决此问题,以检查文本框中的值是否为整数值。

答案 2 :(得分:0)

为避免重复,您可以这样做:

Calc = {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5,
        TextBox6, TextBox7, TextBox8, TextBox9, TextBox10}.
        Select(Function(txt) Convert.ToDouble(txt.Text)).Average

现在这仍然有很多重复,因此我建议您将文本框分组到一个共同的父级,例如面板或组框。然后使用

而不是上面的数组
pnlTextBoxes.Controls.OfType(Of TextBox)

使用这种方法,您可以增加或减少设计器中TextBox的数量 - 此代码将自动调整并始终为您提供正确的答案。