我仍在运行该程序,但是当我运行它时,如果在文本框中输入数字,则会同时显示消息框。
如何为此编写一个好的代码-如果我的总人数是男性,并且我要输入的是原住民人数,并且如果该人数大于总人数,则该消息框。
请帮助提供正确的代码。
Private Sub TxtIM_TextChanged(sender As Object, e As EventArgs) Handles TxtIM.TextChanged
If TxtMTotal.Text > TxtMTotal.Text Then
MessageBox.Show("Must be Greater Than Total of Male")
End If
End Sub
Private Sub TxtIM_TextChanged(sender As Object, e As EventArgs) Handles TxtIM.TextChanged
If TxtMTotal.Text > TxtMTotal.Text Then
MessageBox.Show("Must be Greater Than Total of Male")
End If
End Sub
答案 0 :(得分:0)
问题是因为您要比较String
类型而不是“整数类型”。
当VB.Net比较两种Integer
类型时,它将比较数字以查看哪个更大。没问题。
但是。比较字符串时,将按单个字符进行比较。假设您有两个字符串..“ 9”和“ 31”。 VB将查看第一个字符“ 9”,并将其与第二个字符串中的第一个字符“ 1”进行比较。 9的字符代码为57,1的ASCII代码为49。一旦VB.net发现差异,它将停止比较其余字符串。您的第二个字符串可能是“ 31543543”,VB仍然会看到“ 9”更大。
要解决您的问题,您需要确保VB在比较数字而不是字符。为此,有几种方法。
最简单的目的是
If Integer.Parse(TxtMTotal.Text) > Integer.Parse(TxtMTotal.Text) Then
MessageBox.Show("Must be Greater Than Total of Male")
End If