Canot access a disposed object

[Résolu]
Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
 Utilisateur anonyme -
Bonjour à tous

pour simplifier
j'ai deux form form1 et form2
form2 a un constructeur
sub new (byval title as string)
dans les déclarations de form1
Private myform As New form2("blabla")
dans le event mouseclick d'un bouton

Private Sub button1_Mouseclick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles button1.Mouseclick
     myform.Show()
End Sub


quand je clique sur button1 myform s'affiche
l'erreur provient si je ferme myform et clique
de nouveau sur button1
comme myform a été disposé(puisque j'ai fermé
myform)
de la l'erreur canot access a disposed object
je peux écrire dans le button1_Mouseclick
myform = New form2("blabla")
dans ce cas à chaque fois que je clique sur
button1 il n' y a plus d'erreur mais
j'ai une instance de myform crée ,si je ne ferme pas myform et je clique de nouveau sur button1 une nouvelle instance de myform crée
et ainsi pour chaque clique
peut etre comme ça

Private Sub button1_Mouseclick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles button1.Mouseclick

si une instance de myform n'a pas été crée
alors 
myform = New form2("blabla")  


merci

6 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
If myform.IsDisposed then
...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Salut ShayW,

Pour mieux comprendre ce qui se produit, ajoute une variable que tu incrémente au fur et à mesure :
Public Class Form1
    Dim myform As Form2
    Dim nb As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        myform = New Form2("blabla " & nb.ToString)
        myform.Show()
        nb += 1
    End Sub
End Class


Public Class Form2
    Sub New(ByVal texte As String)
        InitializeComponent()
        Me.Text = texte
    End Sub
End Class
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
52
Merci Renfield

Salut Banana32
j'avais compris ce que se passait
avec le .isdisposed le prob est résolu
Messages postés
197
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
25 janvier 2014
2
Merci Renfield

Virement merci.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Ah
C'est bien, sportmed, de faire un tel virement. Excellente idée.
A Renfield : au crédit de quel compte comptes-tu en porter le montant ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

j'avais compris ce que se passait

Oui c'est moi qui n'avais pas compris la question faut dire que passé minuit...
Bonsoir aux autres