Wrong Result to the last form on label always 0 - vb.net

Hi good day guys i would just like to seek some help regarding my problem here in VB.NET. I have this program that if the text in the textbox is equal to the text in the textbox of the previous form it will add 1 for each correct answer but instead it always shows zero (0) (last form) and not showing the results that I want. Here is my code guys I hope you can help me with this problem thanks in advance.
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

The only time you add anything to Lbl3 is:
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
With the nesting you have it is only if all the other If statements = True that you even get to this point.
In addition to this on ALL the other if statement your outcome is either lbl3 = CInt(lbl3) + 0 (if this statement and all previous ones were true) or if any of them are false ALL subsequent ones are irrelevant.
If i understand your intention correctly then what you want is instead of:
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
Try:
If frm1.TextBox2.Text = TextBox1.Text Then lbl3 += 1
If Not frm1.TextBox4.Text = TextBox2.Text Then lbl3 += 1
And so on....
Then to display it you need to update the following code:
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
(this is very similar to one of the answers on one of the other questions hence my comment above)

Add setting code.
frm4.Label3.Text = lbl3.ToString()

Related

Move to next record based on specific value in textbox

I am in need of some help. I want to be able to go through my records using the next and previous buttons on my form using a dynamic
values.
The code I currently have does moves to next record but from the starting value, however I want to be able to start from a specific value for example, if I type 100
into textbox and click next it should display records for 101, 102 and so forth with each click.
How do I accomplish this. Many thanks
This is the current code i have at the moment.
Dim intcurrentindex As Integer = 0
If intcurrentindex < ds.Tables(0).Rows.Count - 1 Then
intcurrentindex = intcurrentindex - 1
TextBox1.Text = ds.Tables(0).Rows(intcurrentindex).Item("NAME").ToString
TextBox2.Text = ds.Tables(0).Rows(intcurrentindex).Item("CODE").ToString
TextBox3.Text = ds2.Tables(0).Rows(intcurrentindex).Item("STOCKNAME").ToString
TextBox4.Text = ds.Tables(0).Rows(intcurrentindex).Item("WEIGHT").ToString
TextBox5.Text = ds.Tables(0).Rows(intcurrentindex).Item("LOCATION").ToString
End If
maybe something like this:
Public Class Form1
Private intcurrentindex As Integer = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TxtCurrentIndex.Text = 0
End Sub
Private Sub BtnNext_Click(sender As Object, e As EventArgs) Handles BtnNext.Click
If TxtCurrentIndex.Text = "" Then
intcurrentindex = 0
Else
'set intcurrentindex to textbox value
intcurrentindex = TxtCurrentIndex.text
End If
If intcurrentindex < ds.Tables(0).Rows.Count - 1 Then
TextBox1.Text = ds.Tables(0).Rows(intcurrentindex).Item("NAME").ToString
TextBox2.Text = ds.Tables(0).Rows(intcurrentindex).Item("CODE").ToString
TextBox3.Text = ds2.Tables(0).Rows(intcurrentindex).Item("STOCKNAME").ToString
TextBox4.Text = ds.Tables(0).Rows(intcurrentindex).Item("WEIGHT").ToString
TextBox5.Text = ds.Tables(0).Rows(intcurrentindex).Item("LOCATION").ToString
intcurrentindex = intcurrentindex + 1
End If
End Sub
Private Sub BtnPrevius_Click(sender As Object, e As EventArgs) Handles BtnPrevius.Click
If TxtCurrentIndex.Text = "" Then
intcurrentindex = 0
Else
'set intcurrentindex to textbox value
intcurrentindex = TxtCurrentIndex.text
End If
If intcurrentindex > 0 Then
TextBox1.Text = ds.Tables(0).Rows(intcurrentindex).Item("NAME").ToString
TextBox2.Text = ds.Tables(0).Rows(intcurrentindex).Item("CODE").ToString
TextBox3.Text = ds2.Tables(0).Rows(intcurrentindex).Item("STOCKNAME").ToString
TextBox4.Text = ds.Tables(0).Rows(intcurrentindex).Item("WEIGHT").ToString
TextBox5.Text = ds.Tables(0).Rows(intcurrentindex).Item("LOCATION").ToString
intcurrentindex = intcurrentindex - 1
End If
End Sub
End Class
you need a variable to store current index
Thank you guys for your help on this. I used binding source in the end to get it to work.

Form.show() in VB.NET returning InvalidOperationException

For some reason while I call a specific form in my program it comes up with
An unhandled exception of type 'System.InvalidOperationException' occurred in CinemaBooking2.exe
Additional information: An error occurred creating the form. See Exception.InnerException for details. The error is: Conversion from string "" to type 'Integer' is not valid.
But I'm not sure why. This only suddenly started happening and I'm not sure if it's visual studio messing up or me.
This is the form it is trying to load:
Imports System.IO
Public Class MainMenu2
Dim intChildren As Integer = 0
Dim intStandard As Integer = 0
Dim intOAP As Integer = 0
Public intTotal As Integer = 0
Dim Reader As StreamReader
Dim Writer As StreamWriter
Dim booAdmin As Boolean
Private Sub BtnComingSoon_Click(sender As Object, e As EventArgs) Handles BtnComingSoon.Click
Me.Visible = False
frmComingSoon.Visible = True
End Sub
Private Sub BtnEdit_Click(sender As Object, e As EventArgs)
Me.Hide()
FrmNowShowing.Show()
End Sub
Private Sub FrmMenu_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Reader = New StreamReader("NowShowing.txt")
LblShowing1.Text = ("Now showing: " & Reader.ReadLine)
LblShowing2.Text = ("Now showing: " & Reader.ReadLine)
Reader.Close()
Reader = New StreamReader("Settings.txt")
booAdmin = Reader.ReadLine
Reader.Close()
If booAdmin = False Then
BtnRefresh.Hide()
BtnEdit.Hide()
End If
End Sub
Private Sub BtnBook_Click(sender As Object, e As EventArgs) Handles BtnBook.Click
Me.Hide()
FrmBookings.Show()
End Sub
Private Sub CmbChildren_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CmbChildren.SelectedIndexChanged
intStandard = CInt(CmbStandard.Text) 'Code for standard combo box
intTotal = intChildren + intStandard + intOAP
LblTotal.Text = ("Total: £" & (intChildren * 3.5) + (intStandard * 5.95) + (intOAP * 4.95) & " for " & intTotal & " People.")
Reader.Close()
If intTotal > 0 And intTotal <= 100 Then
BtnBook.Enabled = True
Else
BtnBook.Enabled = False
End If
Reader = New StreamReader("Settings.txt")
booAdmin = Reader.ReadLine
Reader.Close()
Writer = New StreamWriter("Settings.txt")
Writer.WriteLine(booAdmin)
Writer.WriteLine(intTotal)
Writer.Close()
End Sub
Private Sub CmbStandard_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles CmbStandard.SelectedIndexChanged
intStandard = CInt(CmbStandard.Text) 'Code for standard combo box
intTotal = intChildren + intStandard + intOAP
LblTotal.Text = ("Total: £" & (intChildren * 3.5) + (intStandard * 5.95) + (intOAP * 4.95) & " for " & intTotal & " People.")
Reader.Close()
If intTotal > 0 And intTotal <= 100 Then
BtnBook.Enabled = True
Else
BtnBook.Enabled = False
End If
Reader = New StreamReader("Settings.txt")
booAdmin = Reader.ReadLine
Reader.Close()
Writer = New StreamWriter("Settings.txt")
Writer.WriteLine(booAdmin)
Writer.WriteLine(intTotal)
Writer.Close()
End Sub
Private Sub CmbOAP_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles CmbOAP.SelectedIndexChanged
intOAP = CInt(CmbOAP.Text) 'Code for OAP combo box
intTotal = intChildren + intStandard + intOAP
LblTotal.Text = ("Total: £" & (intChildren * 3.5) + (intStandard * 5.95) + (intOAP * 4.95) & " for " & intTotal & " People.")
Reader.Close()
If intTotal > 0 And intTotal <= 100 Then
BtnBook.Enabled = True
Else
BtnBook.Enabled = False
End If
Reader = New StreamReader("Settings.txt")
booAdmin = Reader.ReadLine
Reader.Close()
Writer = New StreamWriter("Settings.txt")
Writer.WriteLine(booAdmin)
Writer.WriteLine(intTotal)
Writer.Close()
End Sub
End Class
This error only appears for this form and no others, so I am unsure of if it is something to do with the form, or if the form has corrupted in some way.
Reader.ReadLine returns strings. I see several places in your code where you are trying to directly assign string values to variables that are not strings. for example:
booAdmin = Reader.ReadLine
This should probably be:
booAdmin = Boolean.Parse(Reader.ReadLine)
Any place where you are trying to read an integer should be:
someIntegerVariable = Integer.Parse(Reader.Readline)
If you want to be even more same, use TryParse instead of Parse, but that will have slightly different semantics.

How to show DateTime.Now.ToString(Format("yyyy")) incrimental in for loop

![enter image description here][1]In windows Application I want to Show a datagridview in which year column I want to show year in incremental by 1 i.e. 2014, 2015 etc by using for Loop
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'Init.
' Set up the Header Color and Font.
With DataGridView1.ColumnHeadersDefaultCellStyle
.Alignment = DataGridViewContentAlignment.MiddleCenter
.BackColor = Color.DarkRed
.ForeColor = Color.Gold
.Font = New Font(.Font.FontFamily, .Font.Size, _
.Font.Style Or FontStyle.Bold, GraphicsUnit.Point)
End With
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Try
' Fill in some Text.
'
' Code for First Row
'
Dim Bonus = TextBox2.Text * 0.001 * ComboBox2.SelectedItem
Dim SA = TextBox2.Text
Dim NormalCover = TextBox2.Text + Bonus
Dim Dab = 2 * SA
Dim AccBenefit = Dab + Bonus
Dim Premium = TextBox4.Text
Dim TaxRebate = Premium * ComboBox1.SelectedItem * 0.01
Dim NetOutgo = Premium - TaxRebate
Dim YlyReturn = 0
Dim arrStrings As String()
arrStrings = New String() _
{ _
DateTime.Now.ToString(Format("yyyy")), TextBox1.Text.ToString, NormalCover.ToString, _
AccBenefit.ToString, Premium.ToString, CStr(Math.Round(TaxRebate)), CStr(Math.Round(NetOutgo)), YlyReturn.ToString _
}
DataGridView1.Rows.Add(arrStrings)
arrStrings = Nothing
'
' Code for second to second last Row
'
For i As Integer = 0 To TextBox3.Text - 2
TextBox1.Text = TextBox1.Text + 1
NormalCover = NormalCover + Bonus
AccBenefit = AccBenefit + Bonus
arrStrings = New String() _
{ _
DateTime.Now.ToString(Format("yyyy")).ToString, TextBox1.Text.ToString, NormalCover.ToString, _
AccBenefit.ToString, Premium.ToString, CStr(Math.Round(TaxRebate)), CStr(Math.Round(NetOutgo)), YlyReturn.ToString _
}
DataGridView1.Rows.Add(arrStrings)
arrStrings = Nothing
Next i
'
' Code for Last Row
'
TextBox1.Text = TextBox1.Text + 1
NormalCover = NormalCover + Bonus
AccBenefit = AccBenefit + Bonus
YlyReturn = TextBox2.Text + Bonus * TextBox3.Text
arrStrings = New String() _
{ _
DateTime.Now.ToString(Format("yyyy")), TextBox1.Text.ToString, NormalCover.ToString, _
AccBenefit.ToString, Premium.ToString, CStr(Math.Round(TaxRebate)), CStr(Math.Round(NetOutgo)), YlyReturn.ToString _
}
DataGridView1.Rows.Add(arrStrings)
arrStrings = Nothing
'
' Code for Summary Row
'
Premium = Premium * TextBox3.Text
TaxRebate = TaxRebate * TextBox3.Text
NetOutgo = Premium - TaxRebate
arrStrings = New String() _
{ _
"Total".ToString, "-".ToString, "-".ToString, _
"-".ToString, Premium.ToString, CStr(Math.Round(TaxRebate)), CStr(Math.Round(NetOutgo)), "-".ToString _
}
DataGridView1.Rows.Add(arrStrings)
arrStrings = Nothing
Catch ex As Exception
End Try
End Sub
Private Sub TextBox1_Leave(sender As Object, e As System.EventArgs) Handles TextBox1.Leave
If Not IsNumeric(TextBox1.Text) Then TextBox1.Focus()
If Val(TextBox1.Text) < 0 Then
TextBox1.BackColor = Color.Red
Else
TextBox1.BackColor = Color.White
End If
End Sub
End Class
how to show that pl any can explain.
If you want a loop to generate a series of years starting at the current year then you should do something like this:
For i = 0 To 10
Dim year = Date.Now.Year + i
'...
Next
Running that code now would give you a series of Integer values from 2014 to 2024 inclusive, to do with whatever you like.

My If Else Statement VB.Net's weird behavior

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 :)
here is my code:
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
Form 2 codes:
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 Codes:
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:(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
End Class
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
Here is my new answer
Public Class MainForm '<----Your main form class name
Dim frm4 = New Form4()'<----declare it here
Dim frm1 = New Form1()'<----declare it here
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Textbox1 As New TextBox
Dim Label3 As New Label
Dim i As Integer = 0
If Textbox1.Text = frm1.TextBox2.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox2.Text = frm1.TextBox4.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox3.Text = frm1.TextBox6.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox4.Text = frm1.TextBox8.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox5.Text = frm1.TextBox10.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox6.Text = frm1.TextBox12.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox7.Text = frm1.TextBox14.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox8.Text = frm1.TextBox16.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox9.Text = frm1.TextBox18.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
If TextBox10.Text = frm1.TextBox20.Text Then i += 1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
frm4.Label3.Text = i.ToString()
frm4.Show()
End Sub
End Class

VB.Net Cannot grab the values on the first form

I would just like to ask for your help regarding my project as you can see it has a caller instance the other form also has it and it is working (without mathematical operation) but on this form which is form3 which I need a +1 on frm4.label it does not work. (I named it Public Sub New1) Error 1 Too many arguments to 'Public Sub New()(Note: i have another callerinstance on the previous form which is form2 which is named Public SubNew()) and when it run instead of getting the right results the label always shows the text of 0
Please help me thanks in advance happy coding to all :)
Public Class Form3
Private frm3 As Form3
Private frm1 As Form1
Private frm4 As Form4
Public Sub New1(ByVal Name As String, ByVal Bread As String, ByVal Cheese As String, ByVal Condiments As String, ByVal Meat As String, ByVal Cost As Decimal, ByVal Quantity As Decimal, 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
frm1 = New Form1(Me)
frm4 = New Form4()
If frm4 Is Nothing Then
frm4 = New Form4
AddHandler frm4.FormClosed, AddressOf Me.Form4HasBeenClosed
Dim i As Integer = 0
i = frm4.Label3.Text
If TextBox1.Text = frm1.TextBox2.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox2.Text = frm1.TextBox4.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox3.Text = frm1.TextBox6.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox4.Text = frm1.TextBox8.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox5.Text = frm1.TextBox10.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox6.Text = frm1.TextBox12.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox7.Text = frm1.TextBox14.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox8.Text = frm1.TextBox16.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox9.Text = frm1.TextBox18.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
ElseIf TextBox10.Text = frm1.TextBox20.Text Then
i = +1 'frm4.Label3.Text = (frm4.Label3.Text) + 1
frm4.Label3.Text = i.ToString()
frm4.Show()
Else
i += 0
frm4.Show()
End If
End If
If frm4 IsNot Nothing Then
frm4.Show(Me) 'Show Second Form
Me.Hide()
End If
End Sub
Sub Form4HasBeenClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs)
frm4 = Nothing
End Sub
End Class
Based on the comments it sounds like the error is on this line
frm1 = new Form1(Me)
If that is the case it means that there is no Sub New method on Form1 which accepts a parameter of type Form3. To fix this you need to add one
Public Class Form1
...
Public Sub New(ByVal frm3 As Form3)
End Sub
End Class