首页 > 解决方案 > 我可以在 VisualBasic 的 TextBox 中显示 Select Case 的结果吗?

问题描述

我目前正在为学校项目创建代码。任务是为教师创建一个非常基本的标记簿系统。我正在使用“选择案例”来确定学生在考试中获得的百分比。

我当前的问题是,在此代码中,我将输出信息显示到显示框中,但实际上我需要将其放入文本框或标签中。当我尝试更改为其中任何一种形式时,都会出现错误。

我可以用什么替换 lsbResults.Items.Add 行,以便后面的信息出现在文本框或标签中?

    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

标签: vb.net

解决方案


除非您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))

推荐阅读