My.Application.OpenForms
End est une méthode plutôt barbare pour fermer une application.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionChaque fois que je lance le debug et le test du logiciel, quand je ferme tout
Public Class Form1 Dim i, b, n, x, y As Integer Dim chemin, chemin2, chemin3 As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load n = 0 x = 1 y = 9 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If sans.Checked = True Then Box1.Visible = False referme1.Text = "" referme2.Text = "" If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) complement1.Text = i complement2.Text = "" n = n + 1 Else complement2.Text = 10 - i n = 0 End If ElseIf avec.Checked = True Then Box1.Visible = True If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) chemin = "_" & i Box1.Image = My.Resources.ResourceManager.GetObject(chemin) complement1.Text = i complement2.Text = "" referme1.Text = "" referme2.Text = "" n = n + 1 If i > 5 Then n = n + 1 b = 10 - i ElseIf n = 1 Then chemin2 = "_" & i & "c" Box1.Image = My.Resources.ResourceManager.GetObject(chemin2) complement2.Text = b n = n + 1 ElseIf n = 2 Then chemin3 = "_" & i & "f" complement2.Text = b Box1.Image = My.Resources.ResourceManager.GetObject(chemin3) n = n + 1 referme1.Text = "Quand la boîte est pleine," referme2.Text = "je referme les deux couvercles." ElseIf n = 3 Then Box1.Image = My.Resources._10 n = 0 End If End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form2.Show() Me.Close() End Sub Private Sub quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles quitter.Click End End Sub Private Sub c10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c10.Click Me.Show() End Sub Private Sub c100_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c100.Click Form2.Show() End Sub End Class
Public Class Form2 Dim i, b, n, x, y As Integer Dim chemin, chemin2, chemin3 As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If sans.Checked = True Then Box1.Visible = False referme1.Text = "" referme2.Text = "" If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) complement1.Text = i * 10 complement2.Text = "" diz1.Text = i & " d" diz2.Text = "" n = n + 1 Else complement2.Text = 100 - (i * 10) diz2.Text = (10 - i) & " d" n = 0 End If ElseIf avec.Checked = True Then Box1.Visible = True If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) chemin = "_" & (i * 10) & "d" Box1.Image = My.Resources.ResourceManager.GetObject(chemin) complement1.Text = (i * 10) complement2.Text = "" diz1.Text = i & " d" diz2.Text = "" referme1.Text = "" referme2.Text = "" n = n + 1 b = 100 - (i * 10) ElseIf n = 1 Then chemin2 = "_" & (i * 10) & "b" Box1.Image = My.Resources.ResourceManager.GetObject(chemin2) complement2.Text = b diz2.Text = (10 - i) & " d" n = n + 1 ElseIf n = 2 Then chemin3 = "valise2" 'complement2.Text = b Box1.Image = My.Resources.ResourceManager.GetObject(chemin3) n = n + 1 referme1.Text = "Quand la valise est pleine," referme2.Text = "je la referme." ElseIf n = 3 Then Box1.Image = My.Resources.valise3 n = 0 End If End If End Sub Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load n = 0 x = 1 y = 9 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form1.Show() Me.Close() End Sub Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click End End Sub Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click Form1.Show() End Sub Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click Me.Show() End Sub
Bon, je sais qu'il y a mieux, alors ne jugez pas mon code svp. Il fonctionne, c'est le plus important pour moi ;)
complement1.Text = i
complement1.Text = i.ToString
Private Sub c10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c10.Click Me.Show() End Sub
Private Sub c100_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c100.Click Form2.Show() End Sub
Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click Me.Show() End Sub
Private Sub quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles quitter.Click me.close If Application.OpenForms.OfType(of Form).Contains(form2) then form2.close End Sub
Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click me.close If Application.OpenForms.OfType(of Form).Contains(form1) then form1.close End Sub
Public Class Form1 Dim i, b, n, x, y As Integer Dim chemin, chemin2, chemin3 As String Dim im, im2, im3 As System.Drawing.Image Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load n = 0 x = 1 y = 9 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If sans.Checked = True Then Box1.Visible = False referme1.Text = "" referme2.Text = "" If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) complement1.Text = i.ToString complement2.Text = "" n = n + 1 Else complement2.Text = (10 - i).ToString n = 0 End If ElseIf avec.Checked = True Then Box1.Visible = True If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) chemin = "_" & i.ToString 'Box1.Image = My.Resources.ResourceManager.GetObject(chemin) im = DirectCast(My.Resources.ResourceManager.GetObject(chemin), System.Drawing.Image) Box1.Image = im complement1.Text = i.ToString complement2.Text = "" referme1.Text = "" referme2.Text = "" n = n + 1 If i > 5 Then n = n + 1 b = 10 - i ElseIf n = 1 Then chemin2 = "_" & i.ToString & "c" 'Box1.Image = My.Resources.ResourceManager.GetObject(chemin2) im2 = DirectCast(My.Resources.ResourceManager.GetObject(chemin2), System.Drawing.Image) Box1.Image = im2 complement2.Text = b.ToString n = n + 1 ElseIf n = 2 Then chemin3 = "_" & i.ToString & "f" complement2.Text = b.ToString 'Box1.Image = My.Resources.ResourceManager.GetObject(chemin3) im3 = DirectCast(My.Resources.ResourceManager.GetObject(chemin3), System.Drawing.Image) Box1.Image = im3 n = n + 1 referme1.Text = "Quand la boîte est pleine," referme2.Text = "je referme les deux couvercles." ElseIf n = 3 Then Box1.Image = My.Resources._10 n = 0 End If End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form2.Show() Me.Close() End Sub Private Sub quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles quitter.Click Me.Close() If Application.OpenForms.OfType(Of Form).Contains(Form2) Then Form2.Close() End If End Sub Private Sub c10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c10.Click Me.Show() End Sub Private Sub c100_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles c100.Click Form2.Show() End Sub End Class
Public Class Form2 Dim i, b, n, x, y As Integer Dim chemin, chemin2, chemin3 As String Dim im, im2, im3 As System.Drawing.Image Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If sans.Checked = True Then Box1.Visible = False referme1.Text = "" referme2.Text = "" If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) complement1.Text = (i * 10).ToString complement2.Text = "" diz1.Text = i.ToString & " d" diz2.Text = "" n = n + 1 Else complement2.Text = (100 - (i * 10)).ToString diz2.Text = (10 - i).ToString & " d" n = 0 End If ElseIf avec.Checked = True Then Box1.Visible = True If n = 0 Then i = CInt(Int((y - x + 1) * Rnd() + x)) chemin = "_" & (i * 10).ToString & "d" 'Box1.Image = My.Resources.ResourceManager.GetObject(chemin) im = DirectCast(My.Resources.ResourceManager.GetObject(chemin), System.Drawing.Image) Box1.Image = im complement1.Text = (i * 10).ToString complement2.Text = "" diz1.Text = i.ToString & " d" diz2.Text = "" referme1.Text = "" referme2.Text = "" n = n + 1 b = 100 - (i * 10) ElseIf n = 1 Then chemin2 = "_" & (i * 10).ToString & "b" 'Box1.Image = My.Resources.ResourceManager.GetObject(chemin2) im2 = DirectCast(My.Resources.ResourceManager.GetObject(chemin2), System.Drawing.Image) Box1.Image = im2 complement2.Text = b.ToString diz2.Text = (10 - i).ToString & " d" n = n + 1 ElseIf n = 2 Then chemin3 = "valise2" 'complement2.Text = b 'Box1.Image = My.Resources.ResourceManager.GetObject(chemin3) im3 = DirectCast(My.Resources.ResourceManager.GetObject(chemin3), System.Drawing.Image) Box1.Image = im3 n = n + 1 referme1.Text = "Quand la valise est pleine," referme2.Text = "je la referme." ElseIf n = 3 Then Box1.Image = My.Resources.valise3 n = 0 End If End If End Sub Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load n = 0 x = 1 y = 9 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form1.Show() Me.Close() End Sub Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click Me.Close() If Application.OpenForms.OfType(Of Form).Contains(Form1) Then Form1.Close() End If End Sub Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click Form1.Show() End Sub Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click Me.Show() End Sub End Class
Dim F2 as Form2
'instance F2 = new Form2 'affichage F2.Show 'ou affichage en modal F2.showdialog 'ou son masquage F2.Hide
F2.close
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If Application.OpenForms.OfType(Of Form).Contains(Form2) Then Form2.Close() End If End Sub
Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If Application.OpenForms.OfType(Of Form).Contains(Form2) Then Form1.Close() End If End Sub
En fait, il suffit que je lance mon logiciel. Sans rien faire, pas de clic sur aucun bouton ni aucun menu, sans appeler la form2, quand je quitte direct ça plante...
Public Class Form2 ici Dim i, b, n, x, y As Integer
quand je quitte direct ça plante
ça plante