IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

me.close ,me dispose


Sujet :

VB.NET

  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut me.close ,me dispose
    Bonjour

    quelle est la différence entre me.close et me.dispose ?
    Merci

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    la méthode close de la classe form ferme simplement la fenêtre

    la méthode dispose qui existe sur beaucoup de classes y compris la classe form libère les ressources non managées (= gérées par autre chose que .net, par windows par exemple (controles, images, connexions ...)

    la méthode dispose de la classe form appelle à priori .close au passage

    ce qui est managé dans une classe disposée n'est plus accessible par le code (erreur objectdisposedexception)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim f as new form
    f.close
    dim s = f.textbox1.text ' ok
    f.dispose
    s = f.textbox1.Text ' erreur à mon avis
    tout ce qui est disposable et non référencé (= pas de variable qui pointe dessus) sera à terme disposé automatiquement, mais il est préférable de le disposer soit même quand on en a plus besoin (using / end using est utile pour ca)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3

  4. #4
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    j'ai effectué un petit test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     Public Class Form2
        Private classx As New Form
        Private WithEvents buutonshow As New Button
        Private WithEvents buttonclose As New Button
     
        Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            classx.BackColor = Color.DarkCyan
            classx.Controls.Add(buttonclose)
            buttonclose.Text = "Close"
            Me.Controls.Add(buutonshow)
            buutonshow.Text = "Show"
            buutonshow.Visible = False
            classx.ShowDialog()
        End Sub
     
        Private Sub buttonclose_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles buttonclose.MouseClick
            buutonshow.Visible = True
            buttonclose.Visible = False
            classx.Close()
        End Sub
     
        Private Sub buutonshow_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles buutonshow.MouseClick
            buttonclose.Visible = True
            buutonshow.Visible = False
            classx.ShowDialog()
        End Sub
    End Class
    aucune exception est relevée bizarre bien que j'ai écrit classx.close
    par contre si je remplace classx.showdialog par classx.show une exception est relevée à la ligne classx.Show()

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    on peut voir le code source du framework et en effet .close fait dans certains cas un .dispose ; pas dans le cas où on a fait un showdialog visiblement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/07/2009, 09h47
  2. StreamReader & StreamWriter - Close et Dispose
    Par arnofly dans le forum VB.NET
    Réponses: 15
    Dernier message: 19/10/2008, 18h29
  3. Réponses: 6
    Dernier message: 01/10/2008, 11h08
  4. .close ou .dispose pour une form
    Par olibara dans le forum C#
    Réponses: 14
    Dernier message: 09/05/2008, 22h29
  5. [JDialog]Close() ou dispose() ?
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 12/12/2005, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo