none
Quiter un usercontrol RRS feed

  • Question

  • bonjour ,

    j'ai un usercontrol que je charge de la facon suivante :

    CtlAccueil Ctl = new CtlAccueil();

    this.CtlAccueil.Children.Add(Ctl);

    Maintenant , en clicquant sur un bouton je voudrais sortir de ce UserControl.

    J'essaie avec unloaded sans success . Faut il faire un dispose .

    Merci de votre aide   Anthride

    mercredi 29 août 2012 07:27

Réponses

  • Bonjour,

    Dans WPF il n'y a pas de Dispose() à faire pour les UserControl.
    Richard devait penser que vous utilisiez Windows Forms...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse Cdes jeudi 30 août 2012 06:46
    mercredi 29 août 2012 22:34
    Modérateur

Toutes les réponses

  • this.CtlAccueil.Children.Remove(ctl) non ?

    Attention a bien libérer les ressources utilisées dans ctl avant de faire ce remove.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 29 août 2012 07:41
  • Non

    j'ai oublié de dire que le bouton etait dans le Usercontrol (CtlAccueil)

    je suis presque arrivé : Mais dans ce cas je ne libere aucune ressources de l'usercontrol : c'est pour cela que je pense qu'il faut fare un Dispose quelque part.

    DockPanel item = (DockPanel)this.Parent; string NameItem = item.Name; int NbTab = item.Children.Count; for (int i = 0; i < NbTab; i++) { UIElement Uitem = item.Children[i]; string hhh = item.Children[i].ToString(); if (hhh == "TX121Chantiers.CtlAccueil") { item.Children.Remove(item); } } item.Children.Clear();

    // charge un autre control CtlDevis Ctl = new CtlDevis(); Ctl.PropParaIni = PassParaIni; Ctl.PropIni7100 = PassIni7100; item.Children.Add(Ctl);


    mercredi 29 août 2012 09:26
  • Bonjour,

    Dans WPF il n'y a pas de Dispose() à faire pour les UserControl.
    Richard devait penser que vous utilisiez Windows Forms...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse Cdes jeudi 30 août 2012 06:46
    mercredi 29 août 2012 22:34
    Modérateur
  • Merci du renseignement

    cordialement Anthride

    jeudi 30 août 2012 06:46
  • Je n'ai jamais dit qu'il fallait faire un Dispose, j'ai précisé qu'il fallait libérer les ressources éventuellement utilisées si l'on veut une libération rapide du UserControl.

    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    jeudi 30 août 2012 09:19