在vb.net windows程序中选择Case

在vb.net windows程序中选择Case,.net,vb.net,console,select-case,.net,Vb.net,Console,Select Case,使用选择案例编写一个vb.net程序,在驾驶员超速时做出决定,显示标签上的决定更改每个决定的标签颜色 Dim speed As Integer Dim diff As Integer 'speed limits Dim nofine As Integer = 60 Dim twenty As Integer = 60 Dim forty As Integer = 80 Dim sixty As Integer = 100 Dim

使用选择案例编写一个vb.net程序,在驾驶员超速时做出决定,显示标签上的决定更改每个决定的标签颜色

    Dim speed As Integer
    Dim diff As Integer

    'speed limits
    Dim nofine As Integer = 60
    Dim twenty As Integer = 60
    Dim forty As Integer = 80
    Dim sixty As Integer = 100
    Dim last As Integer = 120

    Select Case Val(TextBox1.Text)
        Case 1
            speed = Val(TextBox1.Text)
            diff = speed - nofine
            If diff <= 5 Then
                Label2.Text = "No fine."
            End If
    End Select
End Sub
Dim速度为整数
Dim diff作为整数
‘车速限制
Dim nofine作为整数=60
尺寸20为整数=60
尺寸40为整数=80
尺寸60为整数=100
最后变暗为整数=120
选择Case Val(TextBox1.Text)
案例1
速度=Val(TextBox1.Text)
差异=速度-无精细

如果diff我想这是你的代码

试试看

Public Enum Fines
   twenty = 60
   forty = 80
   sixty = 100
   last = 120
End Enum

Public Class Form1
   Private speed As Integer


   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Int16.TryParse(TextBox1.Text, speed)

    If speed <= Fines.twenty Then
        Label2.Text = "No fine."
    ElseIf speed >= Fines.last Then
        Label2.Text = Fines.last.ToString()
    ElseIf speed >= Fines.sixty Then
        Label2.Text = Fines.sixty.ToString()
    ElseIf speed >= Fines.forty Then
        Label2.Text = Fines.forty.ToString()
    ElseIf speed >= Fines.twenty Then
        Label2.Text = Fines.twenty.ToString()
    End If

End Sub

End Class
公共枚举罚款
二十=60
四十=80
六十=100
最后一次=120
结束枚举
公开课表格1
私有速度为整数
私有子按钮2\u单击(发送者作为对象,e作为事件参数)处理按钮2。单击
Int16.TryParse(TextBox1.Text,速度)
如果速度=罚款,则最后
Label2.Text=Fines.last.ToString()
否则速度>=罚款。那么
Label2.Text=Fines.sixty.ToString()
如果速度>=罚款,则为0.40
Label2.Text=Fines.four.ToString()
如果速度>=罚款,则为20
Label2.Text=Fines.two.ToString()
如果结束
端接头
末级

糟糕的设计。。案例1?这意味着速度是1?无法理解代码,顺便说一句:背景色道具在哪里?不,彼得,案例1不是速度1,或者你想让我把它改为80英里/小时?案例1是你代码中的速度,绝对。。{Case}Val(TextBox1.Text)={speed=}Val(TextBox1.Text)。。它的值是一样的。。把它改成“80”。。顺便说一句,正如我所说的糟糕的设计,使用枚举来声明速度限制。。否则你怎么能想写罚款的价值为基础的价值?它没有意义。谢谢,让我试试看结果。考虑一下如何将if语句重写为case语句。我们可以停止使用Val()吗。Net对此有更好的方法(.TryParse),而不是旧的VB6 Val。请注意:在当前格式中,
Int16.Parse
将在
TextBox1.Text
格式无效时引发异常。按照@Mary的建议使用
.TryParse
可以防止这种情况,并允许您轻松处理无效的输入案例。是的,您是对的,我也已经编辑了我的代码,我只是想,文本框的输入应该首先只验证整数。好的,Peter Ksenak,我回来反馈。所以我用了这样的箱子;Dim
Speed As Integer=Val(TextBox1.Text)选择大小写速度大小写为<60 Label2.Text=“速度超出范围”。ToString()Label2.BackColor=Color.Aqua()大小写为<66 Label2.Text=“不好。”.ToString()Label2.BackColor=Color.Green()大小写为<80 Label2.Text=“£20罚款。”.ToString()Label2.BackColor=Color.Yellow()结束选择