我的 If Else 语句 VB.Net's 的奇怪行为 [英] My If Else Statement VB.Net's weird behavior

查看:27
本文介绍了我的 If Else 语句 VB.Net's 的奇怪行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个程序,当我在表单上输入相同的文本时,另一个表单会在我最后一个表单的标签上添加一个 (+1).没有错误,但是当我在上面写下正确答案时它只是给了我一个数字 1 而不是 10 的文本框.请帮助我.提前致谢:)

I have this program that when I typed the same text on the form and to the other form will add one (+1) to the label of my last form..There were no errors but when I wrote the correct answers on the textboxes it just gave me a number 1 instead of 10. Please help me guys. Thanks in advance :)

这是我的代码:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    frm4 = New Form4()
    frm1 = New Form1()
    Dim Textbox1 As New TextBox
    Dim Label3 As New Label
    If Textbox1.Text = frm1.TextBox2.Text Then
        frm4.Label3.Text = (frm4.Label3.Text) + 1
        If TextBox2.Text = frm1.TextBox4.Text Then
            frm4.Label3.Text = (frm4.Label3.Text) + 1
            If TextBox3.Text = frm1.TextBox6.Text Then
                frm4.Label3.Text = (frm4.Label3.Text) + 1
                If TextBox4.Text = frm1.TextBox8.Text Then
                    frm4.Label3.Text = (frm4.Label3.Text) + 1
                    If TextBox5.Text = frm1.TextBox10.Text Then
                        frm4.Label3.Text = (frm4.Label3.Text) + 1
                        If TextBox6.Text = frm1.TextBox12.Text Then
                            frm4.Label3.Text = (frm4.Label3.Text) + 1
                            If TextBox7.Text = frm1.TextBox14.Text Then
                                frm4.Label3.Text = (frm4.Label3.Text) + 1
                                If TextBox8.Text = frm1.TextBox16.Text Then
                                    frm4.Label3.Text = (frm4.Label3.Text) + 1
                                    If TextBox9.Text = frm1.TextBox18.Text Then
                                        frm4.Label3.Text = (frm4.Label3.Text) + 1
                                        If TextBox10.Text = frm1.TextBox20.Text Then
                                            frm4.Label3.Text = (frm4.Label3.Text) + 1
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If






        End If
        frm4.Show()

    Else
        frm4.Label3.Text = frm4.Label3.Text

        frm4.Show()
    End If

End Sub

表格 2 代码:

 Public Class Form2
Private frm1 As Form1 ' remove the new here because it creates a new instance of Form1'
Private frm3 As Form3

Public lbl As New Label ' not needed?'

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Controls.Add(lbl)

End Sub
Public Sub New(ByVal callerInstance As Form1)

    ' Call required if you add your constructor manually
    InitializeComponent()

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


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    ' Dim Label21 As Label = New Label          ' this label is not needed'
    ' Dim Textbox1 As TextBox = New TextBox     ' this  textbox is not needed'

    ' Create a new instance of Form3, do not use the automatic Form3 instance
    ' automatically created by VB.NET 
    frm3 = New Form3()

    ' now you are referring to the caller instance of Form1 '
    ' where there is the textbox filled with your text '
    frm3.Label21.Text = frm1.TextBox1.Text
    frm3.Label22.Text = frm1.TextBox3.Text
    frm3.Label23.Text = frm1.TextBox5.Text
    frm3.Label24.Text = frm1.TextBox7.Text
    frm3.Label25.Text = frm1.TextBox9.Text
    frm3.Label26.Text = frm1.TextBox11.Text
    frm3.Label27.Text = frm1.TextBox13.Text
    frm3.Label28.Text = frm1.TextBox15.Text
    frm3.Label29.Text = frm1.TextBox17.Text
    frm3.Label30.Text = frm1.TextBox19.Text






    frm3.Show()

End Sub
End Class

Form1 代码:

 Public Class Form1
Private frm2 As Form2

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

    If frm2 Is Nothing Then
        frm2 = New Form2(Me)
        AddHandler frm2.FormClosed, AddressOf Me.Form2HasBeenClosed

        Dim Label21 As Label = New Label
        frm2.Label21.Text = TextBox1.Text
        frm2.Label21.ForeColor = Color.Black


        Dim Label22 As Label = New Label
        frm2.Label22.Text = TextBox2.Text
        frm2.Label22.ForeColor = Color.Black


        Dim Label23 As Label = New Label
        frm2.Label23.Text = TextBox3.Text
        frm2.Label23.ForeColor = Color.Black

        Dim Label24 As Label = New Label
        frm2.Label24.Text = TextBox4.Text
        frm2.Label24.ForeColor = Color.Black


        Dim Label25 As Label = New Label
        frm2.Label25.Text = TextBox5.Text
        frm2.Label25.ForeColor = Color.Black


        Dim Label26 As Label = New Label
        frm2.Label26.Text = TextBox6.Text
        frm2.Label26.ForeColor = Color.Black


        Dim Label27 As Label = New Label
        frm2.Label27.Text = TextBox7.Text
        frm2.Label27.ForeColor = Color.Black


        Dim Label28 As Label = New Label
        frm2.Label28.Text = TextBox8.Text
        frm2.Label28.ForeColor = Color.Black


        Dim Label29 As Label = New Label
        frm2.Label29.Text = TextBox9.Text
        frm2.Label29.ForeColor = Color.Black

        Dim Label30 As Label = New Label
        frm2.Label30.Text = TextBox10.Text
        frm2.Label30.ForeColor = Color.Black


        Dim Label31 As Label = New Label
        frm2.Label31.Text = TextBox11.Text
        frm2.Label31.ForeColor = Color.Black


        Dim Label32 As Label = New Label
        frm2.Label32.Text = TextBox12.Text
        frm2.Label32.ForeColor = Color.Black


        Dim Label33 As Label = New Label
        frm2.Label33.Text = TextBox13.Text
        frm2.Label33.ForeColor = Color.Black


        Dim Label34 As Label = New Label
        frm2.Label34.Text = TextBox14.Text
        frm2.Label34.ForeColor = Color.Black


        Dim Label35 As Label = New Label
        frm2.Label35.Text = TextBox15.Text
        frm2.Label35.ForeColor = Color.Black

        Dim Label36 As Label = New Label
        frm2.Label36.Text = TextBox16.Text
        frm2.Label36.ForeColor = Color.Black


        Dim Label37 As Label = New Label
        frm2.Label37.Text = TextBox17.Text
        frm2.Label37.ForeColor = Color.Black


        Dim Label38 As Label = New Label
        frm2.Label38.Text = TextBox18.Text
        frm2.Label38.ForeColor = Color.Black


        Dim Label39 As Label = New Label
        frm2.Label39.Text = TextBox19.Text
        frm2.Label39.ForeColor = Color.Black


        Dim Label40 As Label = New Label
        frm2.Label40.Text = TextBox20.Text
        frm2.Label40.ForeColor = Color.Black


    End If

    If frm2 IsNot Nothing Then
        frm2.Show(Me) 'Show Second Form  
        Me.Hide()
    End If

End Sub
Sub Form2HasBeenClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs)
    frm2 = Nothing
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class

Form 3 Code:(调用form1的实例)

Form 3 Code:(instance calling to form1)

Public Class Form3
Private frm3 As Form3
Private frm1 As Form1
Private frm4 As Form4

Public Sub New1(ByVal callerInstance As Form1)

    ' Call required if you add your constructor manually
    InitializeComponent()

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

结束课程

推荐答案

如果你想在标签中显示正确答案的数量然后
您需要将所有用户答案与正确答案进行比较
并计算答案相同的次数:

If you want show in label number of right answers then
You need compare all user answers with right answers
And count times when answers are same:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
frm4 = New Form4()
frm1 = New Form1()
Dim Textbox1 As New TextBox
Dim Label3 As New Label
Dim sameQnt As Int32 = 0

If Textbox1.Text = frm1.TextBox2.Text Then sameQnt += 1
If Textbox2.Text = frm1.TextBox4.Text Then sameQnt += 1
If Textbox3.Text = frm1.TextBox6.Text Then sameQnt += 1
If Textbox4.Text = frm1.TextBox8.Text Then sameQnt += 1
If Textbox5.Text = frm1.TextBox10.Text Then sameQnt += 1
If Textbox6.Text = frm1.TextBox12.Text Then sameQnt += 1
If Textbox7.Text = frm1.TextBox14.Text Then sameQnt += 1
If Textbox8.Text = frm1.TextBox16.Text Then sameQnt += 1
If Textbox9.Text = frm1.TextBox18.Text Then sameQnt += 1
If Textbox10.Text = frm1.TextBox20.Text Then sameQnt += 1

'Print reslut
frm4.Label3.Text = sameQnt.ToString()
frm4.Show()
End Sub

这篇关于我的 If Else 语句 VB.Net's 的奇怪行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆