0

我有两个文本框的 Txtmark 和 TxtName 输入数据,然后在 20 个条目后存储在一个数组中,显示一个列表框以显示名称并标记我想要做什么 id 添加一个额外的有奖励的列

高区分度90%及以上;区别 75% 到 89%;信贷 60% 至 74%;并通过 50% 到 59%,其他一切都是参与

这是我到目前为止的代码:

    'Enter scores - press  to place value into Array
Private Sub TxtMark_Enter(ByVal sender As System.Object, _
        ByVal e As KeyPressEventArgs) Handles TxtMark.KeyPress


    Dim Mark As Double
    Dim DataString As String

    If e.KeyChar = ControlChars.Cr Then

        If Double.TryParse(TxtMark.Text, Mark) = False Then
            MessageBox.Show(" You must enter a numeric value like 1 or 2")
            TxtMark.Clear()
            TxtMark.Focus()
            Exit Sub
        End If

        If Mark < 0 Or Mark > 100 Then
            MessageBox.Show("Valid range is between 0 and 100, 7 would work " _
                & Mark.ToString & " Does not")
            TxtMark.Clear()
            TxtMark.Focus()
            Exit Sub
        End If



        If NumberOfScores < MaxEntries Then
            ScoreArray(NumberOfScores) = Mark

            DataString = (NumberOfScores + 1).ToString + ".  " + _
                NameArray(NumberOfScores).PadRight(15) + _
  Mark.ToString.PadLeft(5)
            ListBox1.Items.Add(DataString)
            NumberOfScores += 1
        End If
        TxtMark.Clear()
        TxtName.Clear()
        TxtName.Focus()
        Exit Sub

    End If


    If ListBox1.Items.Count >= 20 Then
        ListBox1.Visible = True
    Else
        ListBox1.Visible = False
    End If
4

1 回答 1

0

由于列表框没有任何实际列,因此您真正的意思是添加到您的数据字符串中,以便信息显示为列式

添加一个函数将标记转换为奖励,如下所示:

Private Function NewAward(Mark As Double) As String
    Select Case Mark
        Case 90 To 100
            Return "High Distinction"
        Case 75 To 89
            Return "Distinction"
        Case 60 To 74
            Return "Credit"
        Case 50 To 59
            Return "Pass"
        Case Else
            Return "Participation"
    End Select
End Function

然后让你的 DataString 像这样:

DataString = (NumberOfScores + 1).ToString + ".  " + _
                NameArray(NumberOfScores).PadRight(15) + _
  Mark.ToString.PadLeft(5) + " - " + NewAward(Mark)

更新:

要通过按钮添加奖励,请改为:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    For I = 0 To ListBox1.Items.Count - 1
        Dim TempString As String = ListBox1.Items(I).ToString
        Dim Mark As Double = Double.Parse(TempString.Substring(TempString.Length - 5))
        TempString += " - " + NewAward(Mark)
        ListBox1.Items.RemoveAt(I)
        ListBox1.Items.Insert(I, TempString)
    Next
End Sub
于 2013-06-25T08:20:38.990 回答