Vb.net 大于男性总数

Vb.net 大于男性总数,vb.net,Vb.net,我仍在运行该程序,但当我运行它时,如果我在文本框中输入一个数字,消息框也会显示出来 如何编写一个好的代码,当我有一个男性总数,我会输入土著人数,如果它大于男性总数的消息框 请告诉我正确的代码是什么 Private Sub TxtIM_TextChanged(sender As Object, e As EventArgs) Handles TxtIM.TextChanged If TxtMTotal.Text > TxtMTotal.Text Then

我仍在运行该程序,但当我运行它时,如果我在文本框中输入一个数字,消息框也会显示出来

如何编写一个好的代码,当我有一个男性总数,我会输入土著人数,如果它大于男性总数的消息框

请告诉我正确的代码是什么

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

问题是因为您试图比较
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

你应该做的第一件事是处理数字,而不是文本。如果使用
字符串
,“10”小于“2”。其次,您可能会考虑比较两个不同的值,而不是一个值本身。首先在逻辑上考虑一下。如果你使用纸和笔,你会怎么做?写下那个问题的答案。现在,编写代码来实现您刚才写下的内容。当你甚至不知道它应该做什么的时候,不要试图去写代码。你就是这样胡说八道的。请给我一个关于如何修复它的示例代码,因为txtMtotal是两个文本框的总和,sir/maam,而txtMtotal.text将输入用户,如果用户输入大于两个输入文本框的总和,或者它将显示在TxtTotal.text中,消息框将显示。您不了解在努力在互联网上寻找一些?在这种情况下,仍然将转换后的内容与自身进行比较。也许,OP试图比较
TxtMTotal
TxtIM
@jimi Ah duh:)的内容,我怎么会错过呢?又是哪一年?