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 Forms Discussion :

positionner le curseur


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 31
    Points
    31
    Par défaut positionner le curseur
    Bonsoir, je dispose dans mon application de réaliser une combobox Multicolumn pour laquelle je suis entrain d'implémenter une aide à la saisie:

    Lorsque l'utilisateur frappe un caractère, c'est la chaîne qui contient la sous-chaîne déjà saisie qui est affichée dans la zone d'édition


    Le traitement se fait dans l'évènement KeyPress....


    Seulement lorsque la chaîne trouvée est affichée à l'aide un composant hérite "ToolStripDropDown".,
    le curseur se trouve dans la zone d'édition mais l'utilisateur ne vient pas de saisir un caractère, ce qui n'est pas esthétique.


    Comment faire pour positionner le curseur à sa guise, ou bien le faire avancer?

    Voila mon code

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    private void BISMultiColumnComboBox_KeyPress(object sender, KeyPressEventArgs e)
            {
                ShowDropDown();
     
                string strFindStr = "";
     
                if (e.KeyChar == (char)8)
                {
                    if (this.SelectionStart <= 1)
                    {
                        this.Text = "";
                        return;
                    }
                    if (this.SelectionLength == 0)
                        strFindStr = this.Text.Substring(0, this.Text.Length - 1);
                    else
                        strFindStr = this.Text.Substring(0, this.SelectionStart - 1);
                }
                else
                {
                    if (this.SelectionLength == 0)
                        strFindStr = this.Text + e.KeyChar;
                    else
                        strFindStr = this.Text.Substring(0, this.SelectionStart) + e.KeyChar;
                }
     
                int intIdx = -1;
     
                // Search the string in the ComboBox list.
     
                if (this.MyDisplayMember != "" && this.MyValueMember != "" && this.MyDisplayMember != null && this.MyValueMember != null)
                    intIdx = FindIndex(this.userBisDataGridView1.MyBisDataGridView.Columns[this.MyDisplayMember].Index, strFindStr);
                else
                {
                    string Var = this.userBisDataGridView1.MyBisDataGridView.Columns[0].HeaderText;
                    intIdx = FindIndex(this.userBisDataGridView1.MyBisDataGridView.Columns[0].Index, strFindStr);
                }
     
                if (intIdx != -1)
                {
                    this.MySelectedIndex = intIdx;
                    e.Handled = true;
                    this.Focus();
                    this.SelectionStart = strFindStr.Length;
                    this.SelectionLength = this.Text.Length;
     
                }
                else
                {
                    e.Handled = true;
                }
            }

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Est-ce que Select ne réponds pas mieux à ce besoin que Focus ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(control.CanSelect)
       {
          control.Select();
       }
    Most Valued Pas mvp

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 31
    Points
    31
    Par défaut
    Sergejack merci pour votre collaboration.
    j'essaie votre code mais le problème reste le même
    Il ne trouve pas une autre solution ? aidez-moi
    Merci....

Discussions similaires

  1. TDBGrid + TDBNavigator + Insert => Positionner le curseur
    Par Drooxy dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2005, 19h24
  2. Réponses: 25
    Dernier message: 17/02/2005, 18h02
  3. Problème quant au positionnement du curseur
    Par hams dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 21/12/2004, 22h01
  4. Réponses: 6
    Dernier message: 06/05/2004, 09h05
  5. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48

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