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

Windows Mobile .NET Discussion :

[C#] Compact Framework : Problème de focus sur textbox après un MessageBox


Sujet :

Windows Mobile .NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [C#] Compact Framework : Problème de focus sur textbox après un MessageBox
    Bonjour à tous,

    Je développe actuellement sous Windows CE (eh oui, ça existe encore), et je suis face à un problème que je ne comprends pas. (le problème se produit sur un "vrai" PDA, comme sur un émulateur)

    J'ai 2 textbox dans un Form.
    Sur le premier, j'exécute un code sur l'évènement "Validating" qui pose une question avec une réponse en YesNo, suite à quoi, je veux mettre le focus sur le 2ème textBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void textBox1_Validating(object sender, CancelEventArgs e) {
        MessageBox.Show("C'est bon ?", "test", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
        textBox2.Focus();
    }
    Et là, après avoir répondu au MessageBox, j'ai bien le curseur clignotant sur le 2ème textBox, mais impossible de saisir quoi que ce soit. Je suis obligé de cliquer sur la fenêtre (ou le champ) pour que la saisie se fasse bien.

    Et pire : si je m'abonne à l'évènement "KeyPress" sur la 2ème textBox, la fonction est bien appelée, mais le caractère ne se met pas dans ma textBox (à moins de bidouiller le KeyPress pour modifier le TextBox2.Text, mais c'est crade)

    Quelqu'un a déjà eu le problème ?
    Avez-vous des idées de solutions ?

    Merci de votre attention et de votre aide.

    csharpement,

    --
    Mike

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Ajouter:
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    textBox2.Select(textBox2.Text.Length,0)

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Ajouter:
    Le FW CE n'a pas d'overload de TextBox.Select() sans parametres
    il faut faire Select(0,0)

    Bienvenue dans le monde Mobile CE que je decouvre non sans effort depuis qq jours !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Points : 98
    Points
    98
    Par défaut
    Et si tu donnes le focus à ta Form avant de donner le focus à ta TextBox, est-ce que cela marche mieux?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci de vos réponses,

    J'avais essayé en donnant d'abord le focus à la Form, puis au champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    this.Focus();
    textBox2.Focus();
    Mais ça ne veut pas non plus. Je viens d'essayer avec le Select() (sans le focus ou après le focus), mais pas mieux...
    Par contre, j'ai une piste, mais elle ne me plaît pas : En passant le champ en multiline, il prend bien le focus comme il faut :
    - Si je le met en multiline, puis je donne le focus, ça fonctionne nickel.
    - Par contre, si je remet ensuite multiline à false, les saisies ne sont à nouveau plus prises en compte... comme si les évènements étaient stoppés...

    Merci de votre aide

    csharpement,

    --
    Mike

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Suite de l'aventure...
    Finalement, j'ai opté pour le mode multiline en empechant le passage à la ligne (en réagissant sur l'évènement KeyPress, et interdisant le KeyCode '13').

    Merci.

    --
    Mike

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

Discussions similaires

  1. Problème de Focus sur des TextBox
    Par Oberown dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/10/2008, 16h18
  2. Focus sur textbox après saisie
    Par ogeiger dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2008, 16h02
  3. [vba-E97] focus sur textbox
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/02/2007, 16h29
  4. [VBA-E] focus sur textbox
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2007, 11h08
  5. Réponses: 2
    Dernier message: 19/01/2007, 10h09

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