C# et les focus

pao2888 Messages postés 9 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 3 juillet 2008 - 6 nov. 2007 à 19:37
memento59800900 Messages postés 15 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 25 avril 2008 - 25 avril 2008 à 23:03
Salut à tous.
Je suis debutante en prog. j'aimerais savoir comment je pourrais faire pour passer le focus direttement à ma textbox quand j'ouvre un form sur lequel j'ai un textbox et un comboBox sur lequel je declenche un event pour ouvrir une autre form encore..
j'ai essayé un textBox.Focus();
mais je ne prend pas le controle si je ne clique pas  à l'interieur à l'aide du mouse.
Quelqu'un pourrait me filer un coup de main?
merci de votre aide en c# svp

10 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
6 nov. 2007 à 20:25
Bonsoir,
Essayes comme ceci:
this.textBox.Focus();

A mettre dans l'event Activate de ta form.

<hr />
-My Blog-
0
pao2888 Messages postés 9 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 3 juillet 2008
7 nov. 2007 à 01:48
Salut encore à tous,
je viens d'éssayer en cliquant actived d'où je me retrouve avec ceci:
private void frPreli_Activated(object sender, EventArgs e)
        {
           this.textBoxUt.Focus();
        }
mais quand je fais le deploy, le form s'ouvre mais je ne vois pas le curseur clignoter dans ma textBox. Quand je fais un MessageBox.Show("test"+this.textBoxUt.Focus();j'ai poutant test=true ce qui veux dire?? Ai je oublié quelque chose? je voudrais vraiment realiser cela car ainsi je pourrais me servir du tab après impression dans la textBox.
Merci du coup de main.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
7 nov. 2007 à 08:10
Tu dis que ça ne marche pas au deploy, ça sous-entends que ça fonctionne au debug?
Tu es certain que tu n'as pas un bout de code quelque part qui donne le focus à un autre composant?
Tu fais bien un projet WinForm (= pas sous PocketPC)

<hr />
-My Blog-
0
pao2888 Messages postés 9 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 3 juillet 2008
7 nov. 2007 à 09:05
salut, je me suis mal exprimé ça marche au deploy mais ça ne fait pas ce que je veux:.
c-a-d avoir le curseur qui bouge dans la textbox à l'ouverture de mon form... je travaille avec un emulateur pour essayer ma production.. Aurais tu une idée pour me depanner? merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
7 nov. 2007 à 11:47
C'est donc de l'embarqué (Pocket PC / Smartphone) ?

::|The S@ib|::
MVP C#.NET
0
pao2888 Messages postés 9 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 3 juillet 2008
7 nov. 2007 à 12:34
Salut à tous;

C'est un pocket pc....
Dans ma 1 form je fais un truc du genre:
Form f2=new Form();
textBox.Focus();
f2.Show();
Maintenant il me dit que mon textBox n'est pas referencé..
pourtant j'ai bien un textBox sur mon design2

Galère!!!
merci du help..
0
bidou_01 Messages postés 134 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 19 mai 2008 1
7 nov. 2007 à 12:48
Bonjour,

Le f2.Show() fait perdre le focus à ta premiere form de toute façon...

Cordialement,

Bidou_01 

<hr />http://blog.corioland.eu
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
7 nov. 2007 à 12:56
Je viens d'essayer sous PocketPC, this.textbox.Focus() dans le form_load : fonctionne nickel.
Vérifie donc que tu n'as pas du code ailleurs qui fait prendre le focus à un autre Control...

<hr />
-My Blog-
0
pao2888 Messages postés 9 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 3 juillet 2008
12 nov. 2007 à 11:26
Salut à tous,
j'ai cette solution pour le focus dans la textBox...
frPreli fPrel = new frPreli();
fPrel.isFirstTime = true;
fPrel.Show();

Dans le form appelé j'implemente la methode sur un Paint..pour capturer le curseur..
//variable boolean
public bool isFirstTime;

 private void frPreli_Paint(object sender, PaintEventArgs e)
        {
            if (!isFirstTime) return;
            isFirstTime = false;
            textBoxUt.Focus();
           
        }
merci de votre aide..
0
memento59800900 Messages postés 15 Date d'inscription samedi 27 janvier 2007 Statut Membre Dernière intervention 25 avril 2008
25 avril 2008 à 23:03
Bonsoir !

Je sais que cela fait très longtemps, mais au cas où tu te poserais toujours la question du focus pour tes applis, j'ai trouvé la solution.
Tu n'as qu'à aller faire un petit tour dans ton ".Designer.cs"

Exemple pour monForm1, va dans le fichier  monForm1.Designer.cs, tu verras ainsi tout un tas de paramètres liés à chacuns de tes controles.

Exemple :   (désolé d'avance pour la tartine de code, mais je veux être le PLUS CLAIR POSSIBLE avec un cas concret ^^)

//...
private void InitializeComponent()
        {
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.button1 = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            //
            // textBox1
            //
            this.textBox1.Location = new System.Drawing.Point(51, 86);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(177, 20);
            this.textBox1.TabIndex = 0;
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(109, 129);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(60, 29);
            this.button1.TabIndex = 1;
            this.button1.Text = "OK";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(48, 50);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(64, 13);
            this.label1.TabIndex = 2;
            this.label1.Text = "Your name :";
            //
            // EnterYourName
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 206);
            this.ControlBox = false;
            this.Controls.Add(this.label1);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.button1);
            this.MinimizeBox = false;
            this.Name = "EnterYourName";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Enter your name : (9 characters max)";
            this.Load += new System.EventHandler(this.EnterYourName_Load);
            this.ResumeLayout(false);
            this.PerformLayout();

        }
//...

=> Tu remarqueras le paramètre : TabIndex défini pour chacun des controles (voir en gras).
L'indexe des tabulations, justement, puisqu'il défini indirectement l'ordre des focus, commence à 0.
Défini donc le paramètre TabIndex du controle dont tu veux un focus à l'ouverture à 0, et les autres dans l'ordre croissant, et le tour est joué.

Voilà, si jamais tu te posais encore la question, j'espère t'avoir aidée.

...pour les autres, si vous trouvez la solution évidente et/ou le post dénué d'intérêt, prière de ne pas vous plier en quatre de rire derrière votre bureau (sisi, je vous ai vu !), c'est pour la bonne cause.

Bonne soirée à toutes et tous et bon Csharping !

Memento.
0
Rejoignez-nous