我正在创建一个DnD角色创建计划,我已经陷入了“体验/水平”领域。我想要的是每1000次体验,级别上升(所以0到999级别为0,
所以,我已经使用以下代码来获取我的位置,但是当经验(txtExperience)更改为1000(或经验更改为2000时为2)时,它不会将标签(lblLevel)更改为1
Private Sub txtExperience_textChanged(sender As Object, e As EventArgs) Handles txtExperience.TextChanged
If txtExperience.Text = letters Then
lblLevel.Text = "0"
ElseIf txtExperience.Text >= 10000 Then
lblLevel.Text = "Maxed"
End If
Select Case txtExperience.Text
Case Is <= "999"
lblLevel.Text = "0"
Case "1000" To "1999"
lblLevel.Text = "1"
Case "2000" To "2999"
lblLevel.Text = "2"
Case "3000" To "3999"
lblLevel.Text = "3"
Case "4000" To "4999"
lblLevel.Text = "4"
Case "5000" To "5999"
lblLevel.Text = "5"
Case "6000" To "6999"
lblLevel.Text = "6"
Case "7000" To "7999"
lblLevel.Text = "7"
Case "8000" To "8999"
lblLevel.Text = "8"
Case "9000" To "9999"
lblLevel.Text = "9"
End Select
End Sub
我会说实话,我不确定我是否正确使用了Select Case ...当我尝试使用If语句时(以及其他每个案例......如果......) 。)它也不起作用。任何帮助将不胜感激。
答案 0 :(得分:3)
你可以进一步简化。使用基本数学,你可以摆脱长Select Case
语句:
Dim Experience As Integer = 0
If Integer.TryParse(txtExperience.Text, Experience) = True Then
If Experience >= 10000 Then
lblLevel.Text = "Maxed"
Return
End If
lblLevel.Text = Math.Floor(Experience / 1000).ToString()
Else
MessageBox.Show("Input must be a whole number between 0 and 10000", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
这是我的代码的在线测试:https://dotnetfiddle.net/VtGFLx
答案 1 :(得分:0)
integer
和string
Select Case Integer.Parse(txtExperience.Text)
Case Is <= 999
lblLevel.Text = 0
Case 1000 To 1999
lblLevel.Text = 1
Case 2000 To 2999
lblLevel.Text = 2
Case 3000 To 3999
lblLevel.Text = 3
Case 4000 To 4999
lblLevel.Text = 4
Case 5000 To 5999
lblLevel.Text = 5
Case 6000 To 6999
lblLevel.Text = 6
Case 7000 To 7999
lblLevel.Text = 7
Case 8000 To 8999
lblLevel.Text = 8
Case 9000 To 9999
lblLevel.Text = 9
End Select