Canot access a disposed object

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 23 févr. 2012 à 22:51
 Utilisateur anonyme - 24 févr. 2012 à 18:43
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 févr. 2012 à 07:39
If myform.IsDisposed then
...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
Utilisateur anonyme
24 févr. 2012 à 00:09
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
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
24 févr. 2012 à 08:11
Merci Renfield

Salut Banana32
j'avais compris ce que se passait
avec le .isdisposed le prob est résolu
0
sportmed Messages postés 194 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 25 janvier 2014 2
24 févr. 2012 à 18:05
Merci Renfield

Virement merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 févr. 2012 à 18:19
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
0
Utilisateur anonyme
24 févr. 2012 à 18:43
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
0
Rejoignez-nous