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 :

[2.0] Sur quel control est le Focus en C#


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 56
    Points : 44
    Points
    44
    Par défaut [2.0] Sur quel control est le Focus en C#
    Bonjour.

    Voila je rencontre un petit soucis que au quel mes recherches n'ont malheureusement pas étaient très fructueuses.

    Je suis sous Visual Studio 2005.
    Alors voila j'ai besoins de faire quelque chose de simple, je dois trouver un moyen de savoir sur quel control est le Focus a un instant T sachant qu'il peut y avoir plusieurs forms utilisées en même temps par l'utilisateur.

    Tout ca dans le but de faire en sorte que les raccourcis clavier ne s'exécutent pas quand l'utilisateur tape dans une TextBox.

    Alors voila cette information est elle stockée dans une classe deja existante ?

    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    les contrôles ont un évènement GotFocus();

    Je pense qu'en utilisant cet évènement, tu pourras savoir qui a le focus sans avoir à balayer tous les composants... et en fonction de la nature du controle possédant le focus, tu pourras choisir de faire les traitements ou comportements désirés

    The Monz, Toulouse

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Merci pour cette reponse rapide

    Mais je ne vais pas être obligé de placer l'event sur tous les controls ? Parceque je veux que mes racourcis se reactive dés que le focus repasse sur autre chose qu'une TextBox.

    Pour ca que je chercher une fonction "FocusOn" pour eviter le placement d'un event qui switch un bool.
    Enfin si on peut utiliser l'event d'une autre facon je ne fais pas du C# depuis longtemps

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    Tu n'as pas de centralisation au niveau de l'application fourni par le framework qui soit en mesure de te donner LE controle qui a le focus

    C'est donc à toi de gérer cela.

    Le plus simple est peut-etre simplement de faire une classe MyTextBbox qui hérite de la TextBox et qui fasse le boulot ou plus simplement, de mettre juste un evenement sur le GotFocus et le LostFocus() de tes textboxs, comme cela, tu seras "avertie" de l'entrée ou nom du focus sur une textbox et ainsi, tu pourras mettre à jour la valeur de ton boolean.

    En dehors de ces deux solutions, je ne vois rien de plus simple à faire

    The Monz, Toulouse

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 174
    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 174
    Points : 25 115
    Points
    25 115
    Par défaut
    la propriété sur la classe control Focused permet de savoir si le controle a le focus
    avec du link to object, en 2 lignes ca fait le tour des fenetres ouvertes pour savoir laquelle est active et si le controle actif de celle ci a le focus

    mais je pense aussi qu'un peu de code dans un textbox spécial serais mieux
    surtout que chercher si c'est un textbox qui a le focus à un instant T pour empecher les raccourcis clavier, je trouve ca un peu étrange


    enfin tout ca si ce que tu cherches n'existait pas deja
    le textbox a une propriété dont msdn nous dit :
    Utilisez la propriété ShortcutsEnabled pour activer ou désactiver les combinaisons de touches de raccourci suivantes :
    CTRL+Z
    CTRL+E
    CTRL+C
    CTRL+Y
    CTRL+X
    CTRL+RETOUR ARRIÈRE
    CTRL+V
    CTRL+SUPPRESSION
    CTRL+A
    SHIFT+SUPPRESSION
    CTRL+L
    MAJ+INS
    CTRL+R

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Bonjour alors voila finalement j'ai trouvé une solution en fait le soucis si tu veux c'était que du Code en C++ parlait avec du code C# et certains raccourcis etaient detectés par le C++ puis envoyé vers le C# pour Confirmation/Execution.

    Au final j'ai fais une fonction récursive qui parcours tous mes controls trouve celui qui est focus. On test en suite si le Control est ReadOnly si il ne l'est pas on exécute le raccourcis si il l'est on bloc le raccourcis.

    Pour la petite histoire, les raccourcis qui pausaient problème n'étaient pas ceux en CTRL+... mais ceux étant simplement placés sur des touches comme a b c

    Merci pour votre aide en tout cas !

  7. #7
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    La conversation est un peu datée mais ca peut toujours servir à quelqu'un :

    Pour récuperer le focus sur une Form à partir du framework 2.0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Control controlFocused = this.Form.ActiveForm;
    Sur plusieurs forms, y a plus qu'a déterminer la form active.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/04/2012, 11h37
  2. Sur quel script est basé developpez.net ?
    Par objectifweb dans le forum Débuter
    Réponses: 3
    Dernier message: 01/02/2011, 23h48
  3. Réponses: 10
    Dernier message: 17/08/2010, 20h59
  4. SNMP : localiser sur quel switch est branché une machine
    Par wagga84 dans le forum Développement
    Réponses: 9
    Dernier message: 11/04/2006, 12h33
  5. Sur quel partition est mon fichier?
    Par nicolaskarp dans le forum Administration système
    Réponses: 8
    Dernier message: 15/12/2005, 17h40

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