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

C# Discussion :

Savoir si un Control existe?


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut Savoir si un Control existe?
    Bonjour,

    je suis à la recherche de la syntax qui permet de faire le teste d'existance d'un Control:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IsExist(this.Controls["MyControl"]) // bool
    si quelque chose de la sorte existe?

    je vous remercie d'avance

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    par rapport à son nom c'est faisable, mais il faut demander à son container (il est possible de demander à toute une form avec une sub récursive)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if this.controls.contains("nomductrl")
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    merci pour votre réponse,

    effectivement, il y a Container.Components["MyElement"] pour les éléments autres que les contrôles tel que ErrorProvider ou ToolTip.

    J'ai remarqué sur le site de microsoft une information intéressante, l'usage de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.ToBoolean(this.Controls["MyControl"])
    pour vérifier l'existence ou non du Control ou d'un élément dans un Container

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    la conversion en booléen vérifie juste si this.Controls["MyControl"] is null ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    à zut, donc pas si il existe?

    il existe quelque chose pour le faire?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Convert.ToBoolean(this.Controls["MyControl"]) retourne true si le controle existe et false s'il n'existe pas comme tu le dis
    mais j'explique le fonctionnement de la ligne

    this.Controls["MyControl"] retourne null si le controle n'existe pas
    Convert.ToBoolean retourn false si on lui donne un null ou 0 et true si on lui donne autre chose

    donc if Convert.ToBoolean(this.Controls["MyControl"])
    équivaut à if not this.Controls["MyControl"] is null
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    merci

    là c'est clair, je pensais que Convert.ToBoolean() permettait de retrouver un true en cas de fonctionnement ou d'existence et un false en cas d'erreur ou de non existence.

    un simple if (this.Controls["MyControl"] != null) suffit

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

Discussions similaires

  1. [VB6]Comment savoir si un répertoire existe
    Par pendragon dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 30/09/2016, 06h42
  2. Savoir si un controle existe (n'est pas null)
    Par Orangina dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/04/2006, 14h13
  3. [FSO] Savoir si un dossier existe
    Par Johnbob dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2005, 11h34
  4. [URL] Comment savoir si une URL existe?
    Par jse dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/10/2004, 15h33
  5. [VB.NET] Savoir si 2 controles se chevauchent [...]
    Par moufles03 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/09/2004, 17h55

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