Vb.net 标签上最后一个表单的错误结果始终为0

Vb.net 标签上最后一个表单的错误结果始终为0,vb.net,winforms,forms,Vb.net,Winforms,Forms,大家好,我想在VB.NET中就我的问题寻求一些帮助。我有一个程序,如果文本框中的文本与上一个表单的文本框中的文本相等,它将为每个正确答案添加1,但它总是显示零(0)(最后一个表单),并且不显示我想要的结果。这是我的代码员,我希望你能帮我解决这个问题,提前谢谢 Imports System.Convert Imports System.IO Public Class Form3 Private frm1 As Form1 Private frm4 As Form4 Public Su

大家好,我想在VB.NET中就我的问题寻求一些帮助。我有一个程序,如果文本框中的文本与上一个表单的文本框中的文本相等,它将为每个正确答案添加1,但它总是显示零(0)(最后一个表单),并且不显示我想要的结果。这是我的代码员,我希望你能帮我解决这个问题,提前谢谢

Imports System.Convert 
Imports System.IO 
Public Class Form3 

Private frm1 As Form1 
Private frm4 As Form4 

Public Sub New1(ByVal callerInstance As Form1) 

    InitializeComponent() 

    ' save the instance of the Me variable passed to this constructor 
    frm1 = callerInstance 
End Sub 

Public Sub New2(ByVal callerInstance As Form4) 

    InitializeComponent() 
    ' save the instance of the Me variable passed to this constructor 
    frm4 = callerInstance 
End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)       Handles Button1.Click 
    Dim frm1 As Form1 = Form1 
    Dim frm4 As Form4 = Form4 
    frm1 = New Form1 
    frm4 = New Form4 

    'program execution proper 
    Dim lbl3 As Integer = CInt(frm4.Label3.Text) 
    lbl3 = CInt(frm4.Label3.Text) 
    Dim Label22 As New Label 
    If frm1.TextBox2.Text = TextBox1.Text Then 
        lbl3 = CInt(lbl3) + 0 'if(integer.tryparse, lbl3) then lbl3 += 1 
        Dim Label24 As New Label 
        If Not frm1.TextBox4.Text = TextBox2.Text Then 
            lbl3 = CInt(lbl3) + 0 
            Dim Label26 As New Label 
            If Not frm1.TextBox6.Text = TextBox3.Text Then 
                lbl3 = CInt(lbl3) + 0 
                Dim Label28 As New Label 
                If Not frm1.TextBox8.Text = TextBox4.Text Then 
                    lbl3 = CInt(lbl3) + 0 
                    Dim Label30 As New Label 
                    If Not frm1.TextBox10.Text = TextBox5.Text Then 
                        lbl3 = CInt(lbl3) + 0 
                        Dim Label32 As New Label 
                        If Not frm1.TextBox12.Text = TextBox6.Text Then 
                            lbl3 = CInt(lbl3) + 0 
                            Dim Label34 As New Label 
                            If Not frm1.TextBox14.Text = TextBox7.Text Then 
                                lbl3 = CInt(lbl3) + 0 
                                Dim Label36 As New Label 
                                If Not frm1.TextBox16.Text = TextBox8.Text Then 
                                    lbl3 = CInt(lbl3) + 0 
                                    Dim Label38 As New Label 
                                    If Not frm1.TextBox18.Text = TextBox9.Text Then 
                                        lbl3 = CInt(lbl3) + 0 
                                        Dim Label40 As New Label 
                                        If Not frm1.TextBox20.Text = TextBox10.Text Then 
                                            lbl3 = CInt(lbl3) + 0 'frm4.Label3.Text = (frm4.Label3.Text) + 1 
                                            frm4.Show() 
                                            Me.Hide() 
                                        Else 
                                            lbl3 = CInt(lbl3) + 1 
                                            frm4.Show() 
                                            Me.Hide() 
                                        End If 
                                    End If 
                                End If 
                            End If 
                        End If 
                    End If 
                End If 
            End If 
        End If 
    End If 

    If frm4 IsNot Nothing Then 
        frm4.Visible = False 
        frm4.Show(Me) 'Show Second Form 

        Me.Hide() 
    End If 
End Sub 


End Class
添加设置代码

frm4.Label3.Text = lbl3.ToString()

Lbl3
添加任何内容的唯一时间是:

If Not frm1.TextBox20.Text = TextBox10.Text Then 
    lbl3 = CInt(lbl3) + 0 'frm4.Label3.Text = (frm4.Label3.Text) + 1 
    frm4.Show() 
    Me.Hide() 
Else 
    lbl3 = CInt(lbl3) + 1 
    frm4.Show() 
    Me.Hide() 
End If 
对于嵌套,只有当所有其他if语句都为True时,您才能到达这一点

除此之外,在所有其他if语句中,您的结果要么是
lbl3=CInt(lbl3)+0
(如果此语句和之前的所有语句都是真的),要么如果其中任何一个都是假的,则所有后续语句都是无关的

如果我正确理解你的意图,那么你想要的不是:

If frm1.TextBox2.Text = TextBox1.Text Then 
    lbl3 = CInt(lbl3) + 0 'if(integer.tryparse, lbl3) then lbl3 += 1 
    Dim Label24 As New Label 
    If Not frm1.TextBox4.Text = TextBox2.Text Then 
        lbl3 = CInt(lbl3) + 0 
尝试:

等等

然后,要显示它,您需要更新以下代码:

If Not frm1.TextBox20.Text = TextBox10.Text Then 
    lbl3 = CInt(lbl3) + 0 'frm4.Label3.Text = (frm4.Label3.Text) + 1 
    frm4.Label3.Text = CStr(lbl3)
    frm4.Show() 
    Me.Hide() 
Else 
    lbl3 = CInt(lbl3) + 1
    frm4.Label3.Text = CStr(lbl3)
    frm4.Show() 
    Me.Hide() 
End If 

(这与我在上面评论的另一个问题的答案非常相似)

谢谢你的回答。您好,先生,您的意思是什么?请您详细说明一下好吗?再次感谢您的代码没有保存递增的值,因此它始终显示
0
。您好,先生,我将frm4.Label3.Text=lbl3.ToString()放在哪里?感谢您不明白它应该放在哪里,这表明您不理解自己的代码。所以问题不在于代码,而在于你。@ElektroStudios嗨,先生,你批评是可以的,但要确保它是建设性的,而不是肮脏的:)无论如何,帮助而不是责备会更好。。顺便说一下,谢谢你的意见:)第三次幸运和的三份副本-要么是该用户,要么是三个有相同问题的独立用户@别这么粗鲁,伙计,我是以礼貌的方式问的。我的第一条帖子没有答案,所以想办法寻求帮助是对的。。顺便说一句,谢谢你的关心。道歉-不是故意粗鲁,只是提醒大家注意另外两个问题,以避免一些穷人浪费宝贵的时间重复已经提出的建议,在添加到第一个链接之前,我几乎在你的第二篇文章中这样做了!作为建议,您最好保留相同的用户名,并在新问题中突出显示以前的问题,说明其答案不充分的原因。有一点-所有
Dim
-ed标签的用途是什么-它们似乎没有在代码示例中使用-它们是否在其他地方使用?您好,先生,谢谢您的帮助回答。这一行显示了一个错误frm4.Label3.Text=lbl3错误是Option Strict,不允许从“整数”到“字符串”的隐式转换。问题解决了,先生!非常感谢我收回我刚才说的你很粗鲁的话,现在我知道你是个好人:)再次谢谢,非常感谢!:)
If Not frm1.TextBox20.Text = TextBox10.Text Then 
    lbl3 = CInt(lbl3) + 0 'frm4.Label3.Text = (frm4.Label3.Text) + 1 
    frm4.Label3.Text = CStr(lbl3)
    frm4.Show() 
    Me.Hide() 
Else 
    lbl3 = CInt(lbl3) + 1
    frm4.Label3.Text = CStr(lbl3)
    frm4.Show() 
    Me.Hide() 
End If