Je ne trouve pas comment faire une insertion dans un Controle TextBox à la position courante du curseur...
un tuyau ?
Je ne trouve pas comment faire une insertion dans un Controle TextBox à la position courante du curseur...
un tuyau ?
Ca devrai suffire non ?
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 private void button1_Click(object sender, EventArgs e) { Point monPoint = Cursor.Position; monPoint.Y -= Cursor.Size.Height; if (monPoint.X < this.Location.X || monPoint.Y < this.Location.Y || monPoint.X > this.Location.X + this.Size.Width || monPoint.Y > this.Location.Y + this.Size.Height) { MessageBox.Show("Vous êtes en dehors de la form !"); return; } monPoint.X -= this.Location.X; monPoint.Y -= this.Location.Y; TextBox txt = new TextBox(); txt.Location = monPoint; txt.Text = "Je suis une belle textBox !"; this.Controls.Add(txt); }![]()
merci.
ton exemple est plutot pas mal, mais ce que je cherche c'est à insérer dans une TextBox déjà existante à l'écran.
Je ne souhaite pas la rajouter à la position du curseur.
ce qui me manque, c'est comment obtenir la position dans TxtPresentation.Text correspondant à celle du curseur à l'écran, dans le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Point monPoint = Cursor.Position; if (monPoint.X >= txtPresentation.Location.X || monPoint.Y >= txtPresentation.Location.Y || monPoint.X <= txtPresentation.Location.X + txtPresentation.Size.Width || monPoint.Y <= txtPresentation.Location.Y + txtPresentation.Size.Height) { txtPresentation.Text.Insert(??? int position ??? , TextInserted); }
Mais j'étais pas mal à l'ouest aussiEnvoyé par papouAlain
Ca m'apprendra à lire les posts à la va-vite. Voici ce que tu cherchais :
PS : Ma solution était tellement tordue que je l'ai commentée.
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 private void button1_Click(object sender, EventArgs e) { Point monPoint = Cursor.Position; //On retire la hauteur et la largeur du curseur qui ne sont pas incluses dans la position. //On divise les deux par 2 car IBeam est un curseur dont le pointeur est au milieu ! monPoint.Y -= (Cursor.Size.Height / 2); monPoint.X -= (Cursor.Size.Width / 2); //On calcule la position "relative" de notre curseur dans notre TextBox. monPoint.X -= (this.Location.X + txtPresentation.Location.X); monPoint.Y -= (this.Location.Y + txtPresentation.Location.Y); //On vérifie qu'il est bien dans la textBox. if (monPoint.X >= 0 && monPoint.Y >= 0 && monPoint.X <= txtPresentation.Size.Width && monPoint.Y <= txtPresentation.Size.Height) { //On regarde où il est... Cette valeur est en Pixel or les polices ont des valeurs //données en Point. double index = monPoint.X; //Cette opération permet de convertir de Point vers un index valide. //Pour info 36 = 72 / 2 ce qui correspond à la définition sous Windows si je ne me trompe pas. index /= (36 / txtPresentation.Font.Size); //Si l'index est bien dans les limites de notre texte, on rajoute notre texte au bon index. if(index < txtPresentation.Text.Length) txtPresentation.Text = txtPresentation.Text.Insert((int)index, "[Je suis un texte ajouté]"); } }
PPS : Tu l'auras deviné, cela ne marche que si le texte affiché à l'écran est le texte à gauche de la textBox... Doit bien y avoir un membre qui permet de savoir quel texte est affiché sur la textBox![]()
Salut,
Tu veux juste insérer du texte à la position du curseur dans la textbox, c'est ca? Dans ce cas moi je fais:
Et ça fonctionne tres bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part taTextbox.Text.Insert(taTextbox.SelectionStart, "du texte")![]()
Euhh je crois que je suis encore à l'ouest alors... Moi j'avais compris le curseur de la souris ... Si c'est pas de celui-là dont il est question alors oui graphicsxp, la solution était pas plus compliquée.
Bon allez je retourne faire des tests de compréhension du français![]()
merci à graphicsxp![]()
t'en fais pas DeusXL, faut percevérer...![]()
ou alors t'es comme moi il faut seulement que t'accepte de ne faire que 1999 choses à la fois et pas 2000...
merci à tous les deux quand même !!!
Partager