none
windows Form RRS feed

  • Question

  • Bonjour,

    j'ai une windows form où j'ai ajouté dedans un combobox et un champs texte. et un panel avec d'autres elements , quand la fentre s'ouvre ,le contenu du combobox est selectionné. qand je clique dans le vide(sur le panel ou sur n'importe quel endroit de la fenetre )le contenu du combobox reste selectionné jusqu ce que je clique sur un autre combobox ou un champs text .

    est il possible de permettre au curseur de se placer où je veux sans qu'il soit lié par les composants de la toolbox?

    Cordialement

    jeudi 5 janvier 2012 09:14

Réponses

  • Bonjour,

    Si j'ai bien compris, vous voulez que le combobox perde le focus

    Il faut savoir que le focus change quand on clique sur un autre control qui accepte le control

    ce qui n'est pas le cas d'une forme donc on peut contourner le problème avec un comboboxPerteFocus comme ceci

     

     private void Form1_Load(object sender, EventArgs e)
            {
                //au chargement de la page on cache le combobox qui sert à rien
                comboBoxperteFocus.Visible = false;
            }
    
    
            private void Form1_Click(object sender, EventArgs e)
            {
                //sur un clic dans la form, le combobox perd son focus
                comboBoxperteFocus.Visible = true;
                comboBoxperteFocus.Focus();
                comboBoxperteFocus.Visible = false;
            }
    


     


    fred on youTube
    PHP MySQL Web Site Creator
    fred
    • Modifié fred75 jeudi 5 janvier 2012 12:48
    • Marqué comme réponse peythonet jeudi 5 janvier 2012 12:51
    jeudi 5 janvier 2012 11:07
  • Bonjour,

    une autre solution si on ne veut pas passer par un combobox qui ne sert à rien:

     private void Form1_Click(object sender, EventArgs e)
            {
                foreach (Control c in this.Controls)
                {
                    if (c is ComboBox && c.CanFocus && c.Focused)
                    {
                        c.Visible = false;
                        c.Visible = true;
                    }
                }
            }
    


    Le fait de cacher un control fait perdre le focus.

     


    fred on youTube
    PHP MySQL Web Site Creator
    fred
    • Marqué comme réponse peythonet jeudi 5 janvier 2012 14:49
    jeudi 5 janvier 2012 12:53

Toutes les réponses

  • Bonjour,

    je ne suis pas sur de comprendre votre question. Vous souhaitez placer le focus sur un autre élément que votre combobox ? Pouvez vous précisez ce que vous entendez par placer le curseur sans qu'il soit lié par les composants de la toolbox ?

    Cordialement
    jeudi 5 janvier 2012 09:50
    Modérateur
  • voici un exemple c'est une partie de mon windows form . je veux pouvoir cliquer dans l'espace qui est autour du combobox et et donc le focus ne serais plus sur le combobox mais dur l'espace autour .

    j'espere que c'est mieux expliquer de cette maniere

    merci pour votre aide .

    Cordialement

    jeudi 5 janvier 2012 10:03
  • Bonjour,

    Si j'ai bien compris, vous voulez que le combobox perde le focus

    Il faut savoir que le focus change quand on clique sur un autre control qui accepte le control

    ce qui n'est pas le cas d'une forme donc on peut contourner le problème avec un comboboxPerteFocus comme ceci

     

     private void Form1_Load(object sender, EventArgs e)
            {
                //au chargement de la page on cache le combobox qui sert à rien
                comboBoxperteFocus.Visible = false;
            }
    
    
            private void Form1_Click(object sender, EventArgs e)
            {
                //sur un clic dans la form, le combobox perd son focus
                comboBoxperteFocus.Visible = true;
                comboBoxperteFocus.Focus();
                comboBoxperteFocus.Visible = false;
            }
    


     


    fred on youTube
    PHP MySQL Web Site Creator
    fred
    • Modifié fred75 jeudi 5 janvier 2012 12:48
    • Marqué comme réponse peythonet jeudi 5 janvier 2012 12:51
    jeudi 5 janvier 2012 11:07
  • Bonjour,

    une autre solution si on ne veut pas passer par un combobox qui ne sert à rien:

     private void Form1_Click(object sender, EventArgs e)
            {
                foreach (Control c in this.Controls)
                {
                    if (c is ComboBox && c.CanFocus && c.Focused)
                    {
                        c.Visible = false;
                        c.Visible = true;
                    }
                }
            }
    


    Le fait de cacher un control fait perdre le focus.

     


    fred on youTube
    PHP MySQL Web Site Creator
    fred
    • Marqué comme réponse peythonet jeudi 5 janvier 2012 14:49
    jeudi 5 janvier 2012 12:53
  • merci pour l'idée j'ai juste créé un label avec un texte vide donc j'avais pas besoin de la methode visible, qui recupere le focus

     

    jeudi 5 janvier 2012 14:49