我可以在VisualBasic的TextBox中显示Select Case的结果吗



我目前正在为一个学校项目创建一个代码。作业是为教师创建一个非常基本的评分系统。我正在使用";选择案例";以确定学生在考试中所占百分比的分数。

我目前的问题是,在这段代码中,我让它将输出信息显示在一个显示框中,但实际上我需要将它放置在一个文本框或标签中。当我尝试更改为这两种形式中的任何一种时,我都会出错。

我可以用什么替换lsbResults行。项目。添加以使以下信息显示在文本框或标签中?

    Public Sub Grades()
    Select Case Percentage
        Case 0 To 49
            lsbResults.Items.Add(StudentName & "'s" & " grade is a participation" & " (" & Percentage & "%)")
        Case 50 To 59
            lsbResults.Items.Add(StudentName & "'s" & " grade is a Pass" & " (" & Percentage & "%)")
        Case 60 To 74
            lsbResults.Items.Add(StudentName & "'s" & " grade is a Credit" & " (" & Percentage & "%)")
        Case 75 To 89
            lsbResults.Items.Add(StudentName & "'s" & " grade is a Distiction" & " (" & Percentage & "%)")
        Case 90 To 100
            lsbResults.Items.Add(StudentName & "'s" & " grade is a High Distinction" & " (" & Percentage & "%)")
    End Select
End Sub

除非您从另一个类调用Grades,否则它可以是Private Sub。我添加了PercentageStudentName作为Grades方法的参数,以使类级别的变量不必要。如果这些数据可以作为类级别的变量使用,那么这些参数就没有必要了。

为了避免重复代码,我只更改了Select Case中的一个单词。

我在报价前使用了一个由$表示的内插字符串。这使您可以将大括号中的变量放在字符串中,使其恰好位于最终文本中出现的位置。我在字符串的末尾添加了一个vbCrLf来开始一行新行。

.AppendText方法会将新字符串添加到文本框中,而不会擦除已经存在的内容。请确保您的文本框在设计器中将.Multiline设置为true。

Private Sub Grades(Percentage As Integer, StudentName As String)
    Dim GradeWord As String = ""
    Select Case Percentage
        Case 0 To 49
            GradeWord = "participation"
        Case 50 To 59
            GradeWord = "Pass"
        Case 60 To 74
            GradeWord = "Credit"
        Case 75 To 89
            GradeWord = "Distiction"
        Case 90 To 100
            GradeWord = "High Distinction"
        Case Else
            GradeWord = "No Grade"
    End Select
    TextBox1.AppendText($"{StudentName}'s grade is {GradeWord} ({Percentage}%){vbCrLf}")
End Sub

如果您使用的是2015年之前的Visual Studio版本,则需要使用String.Format

    TextBox1.AppendText(String.Format("{0}'s grade is {1} ({2}%){3}", StudentName, GradeWord, Percentage, vbCrLf))

您可以将分数输入变量,然后使用.text 将其显示在文本框或标签中

公共等级((

Dim strGrade作为字符串

Select Case Percentage
    Case 0 To 49
        strGrade = (StudentName & "'s" & " grade is a participation" & " (" & Percentage & "%)")
    Case 50 To 59
        strGrade =  (StudentName & "'s" & " grade is a Pass" & " (" & Percentage & "%)")
    Case 60 To 74
        strGrade = (StudentName & "'s" & " grade is a Credit" & " (" & Percentage & "%)")
    Case 75 To 89
        strGrade =   (StudentName & "'s" & " grade is a Distiction" & " (" & Percentage & "%)")
    Case 90 To 100
        strGrade =  (StudentName & "'s" & " grade is a High Distinction" & " (" & Percentage & "%)")
End Select

TxtBoxFinalGrade.text=strGrade

结束子

最新更新