在 vb.net windows 程序中选择案例

Posted

技术标签:

【中文标题】在 vb.net windows 程序中选择案例【英文标题】:Select Case in vb.net windows program 【发布时间】:2019-10-17 10:44:23 【问题描述】:

使用选择案例编写一个 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

我的问题是我没有在标签上显示决定。对于每个速度限制,如果驾驶员超速,例如对于速度限制 - 80MpH,该决定将被罚款 40 英镑,并且 label2.text 应显示该决定并将其背景颜色更改为黄色。

【问题讨论】:

糟糕的设计.. 案例 1?这意味着速度是1?无法理解该代码,顺便说一句:backGroundColor 属性设置在哪里? 不,彼得,案例 1 不是速度 1,或者您可能希望我将其更改为案例“80 MpH”? case 1 是代码中的速度,绝对是.. Case Val(TextBox1.Text) = speed =Val(TextBox1.Text).. 它是相同的值.. 改变它到“80”..顺便说一句,正如我所说的糟糕的设计,使用枚举来声明速度限制..否则你怎么能想根据价值写出罚款的价值?没有意义 好的,谢谢,让我试试看结果。 【参考方案1】:

我认为这是你的代码

试试看

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

【讨论】:

想想如何将我的 if 语句改写为 case 语句?这是你的功课? 我们可以停止使用 Val()。 .Net 有更好的方法(想到 .TryParse),而不是旧的 VB6 Val。 就像一个注释:在它的当前格式中,如果TextBox1.Text 不是一个有效的格式,Int16.Parse 将抛出一个异常。按照@Mary 的建议使用.TryParse 可以防止这种情况发生,并允许您轻松处理无效的输入情况。 是的,你是对的,我也已经编辑了我的代码,我只是想,文本框的输入应该首先验证整数.. 好的,Peter Ksenak,我回来提供反馈。所以我用过这样的案例;昏暗Speed As Integer = Val(TextBox1.Text) Select Case Speed Case Is &lt; 60 Label2.Text = "Speed out of range".ToString() Label2.BackColor = Color.Aqua() Case Is &lt; 66 Label2.Text = "No fine.".ToString() Label2.BackColor = Color.Green() Case Is &lt; 80 Label2.Text = "£20 fine.".ToString() Label2.BackColor = Color.Yellow() End Select

以上是关于在 vb.net windows 程序中选择案例的主要内容,如果未能解决你的问题,请参考以下文章

如何在选择案例语句中实现枚举

VB.NET创建Forms项目无设计界面的解决办法

vb.net 应用程序取消按钮在 Windows 7 中运行到窗体的边缘

vb.net中Windows窗体应用程序中的折线图

如何让我的 VB.net 程序在 Windows XP 上运行?

求大神指点vs2012里的vb.net 编写的windows 服务怎么启动呀