在 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 < 60 Label2.Text = "Speed out of range".ToString() Label2.BackColor = Color.Aqua() Case Is < 66 Label2.Text = "No fine.".ToString() Label2.BackColor = Color.Green() Case Is < 80 Label2.Text = "£20 fine.".ToString() Label2.BackColor = Color.Yellow() End Select
以上是关于在 vb.net windows 程序中选择案例的主要内容,如果未能解决你的问题,请参考以下文章
vb.net 应用程序取消按钮在 Windows 7 中运行到窗体的边缘