Séléction de droite a gauche

Résolu
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 18 janv. 2012 à 15:52
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 5 avril 2012 à 12:02
Bonjour,

Dans un RichTextBox, je veux que certains "mots" soient complétement sélectionné ou pas du tout, je m’explique.

Par exemple dans la chaine :
"123456789"
je veux que soit 34567 soit totalement sélectionner soit pas du tout.
Pour ça :
- Je test SelectionStart
Si il est contenu dans 34567, je sauvegarde la future position en 3 (soit valeur 2, sauvegarder pour ne pas perdre ma sélection courante pour le test suivant).
- Je test SelectionStart + SelectionLength (soit la position de la fin de la sélection)
Si la valeur est contenu dans 34567, je sauvegarde la fin de la sélection en 7 (valeur 6)
- Enfin je met a jour SelectionStart et SelectionLength en fonction des valeurs trouver dans mes test précédant.

Donc si je sélectionne 123 ma sélection est "étendu" jusqu'à 7. (résultat 123456789) parfait c'est ce que je veux faire.

Par contre, si je fait ma sélection de droite a gauche, vue que SelectionStart est toujours le caractère le plus a gauche de ma sélection (et non pas le début "réel" de la sélection). Alors mon curseur se retrouve a gauche de ma sélection (il doit rester a droite, vue que je fait une sélection de droite a gauche).

Ce n'a pas l'aire d'être grand choses, mais ça me fait bien ch____ car dans le cas où je sélectionne 789. Alors ma sélection s’étend bien jusqu'à 3 (soit 123456789) mais si je veux continuer de sélectionner jusqu'à 2 alors je me retrouve a sélectionner 2 tout seul (soit 123456789) vue que mon curseur n'est plus a droite du 9 mais qu'il c'est fait déplacer entre le 2 et le 3 au moment où j'ai étendu ma sélection)

J'ai regardé par mal de choses sur le RichTextBox mais je ne trouve pas comment faire pour placer (ou tester si) le curseur est a droite ou a gauche de la sélection.

Quelqu'un aurait-il une solution a ce problème svp ?

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo

94 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 janv. 2012 à 12:49
Oui mais si on ne touche pas a selstart comment sélectionner X en entier, alors que le curseur est contenu dans X

Et ce sera là (et uniquement là) le point de défi à surmonter
Si tu le permets, j'attendrai ce soir pour me remettre aux agrès et y faire des acrobaties.
J'ai, depuis la dernière fois sur ce sujet, eu le temps de "récupérer" un peu, mais il me faut ne pas interrompre les gestes (et il y a une partie de pêche prévue dans l'après-midi).
A plus, donc.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 janv. 2012 à 22:02
Bon Pollack,

J'ai à nouveau les yeux qui jouent à belbetche ... et je commence à voir la barre-fixe en double !
Mes cogitations premières (ma vision) étaient à la fois correctes et incomplètes. Il reste juste un petit "os", que je ne vois pas comment résoudre.
Voici tout ce que peut maintenant faire cette petite usine à gaz :

- lorsque la sélection se fait en dehors du "pré (34567") ===>>
---- tout ce que l'on avait déjà, tant de gauche à droite que de droite à gauche, en incluant le pré au passage, tant à la souris qu'au clavier :

- lorsque la sélection se fait dans le "pré (34567") === >>
-1) on ne peut inclure automatiquement le pré que si la sélection de fait de gauche à droite , tant à la souris qu'au clavier, et on peut ensuite poursuivre la sélection au delà du pré
-2) rien à signaler si à la souris. Si par contre à l'aide du clavier : la sélection ne commence et inclut le pré qu'à la seconde frappe, la première ne servant qu'à "placer". C n'est pas vraiment gênant.

Cela te conviendrait-il ainsi ?
Si oui : je commence à refaire le ménage demain matin (j'ai mis des "tâches" un peu partout dans mon code).
Tu dis





____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 janv. 2012 à 12:49
Ah ! Ah !
Voilà qui va peut-être tout changer ===>>>
1) J'ai passé l'essentiel de ma nuit à me retourner sur mon lit, furieux que j'étais de ne pas avoir pu me débarrasser du dernier petit "os" (lire plus haut)
2) je me suis mis au travail ce matin, non pour "faire le ménage", mais pour essayer de comprendre où se cachait la difficulté.
3) bien qu'il soit impossible de regarder sous les jupes de la dll qui gère, il paraissait possible (un fichier log) de réunir certaines informations me permettant mieux de "deviner" certaines de ses réactions. C'est donc ce que j'ai fait === >>> et j'ai découvert certains comportements qui m'ont carrément laissé "baba" .

Me voilà donc, sur la base de ce que je viens de deviner, sur un autre code, totalement différent en matière de démarche, en vue, à défaut de "forcer" cette gente dll, du moins de "ne cesser de la coller de très près" dans chacun de ses mouvements ... et en rester maître en dépit de ses caprices et sauts d'humeur.
Si j'ai raison :
1) on trouvera là l'explication de toutes nos difficultés, y compris depuis le départ.
2) elle sera (la dll) "roulée dans la farine" et prise malgré elle jusqu'à la gorge
3) j'étalerai à la vue de chacun ce (ses comportements) qu'elle cache sous ses jupes.

Je te demande alors encore un peu de patience, Pollack (car ce jeu en vaut largement la chandelle).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
24 janv. 2012 à 15:23
Bonjour,

J'ai été TRÈS occupé ce matin (ce qui explique mon silence, un c__ard de client incapable de corriger ces erreurs, malgré une documentation PARTICULIÈREMENT PRÉCISE ET COMPLÈTE, des journaux de traitement également complet indiquant où se trouve les problèmes, et d'un chef trop sympa avec la clientèle. M'en cogne, je remonterais les infos au service facturation, pas question de faire ça gratos ). Pardon je m'éloigne du sujet

lundi 23 janvier 2012 à 22:02:17 :
Heeeee j'ai pas compris grand chose
Que veux tu dire par :
- lorsque la sélection se fait en dehors du "pré (34567") === >>


mardi 24 janvier 2012 à 12:49:57 :
1) J'ai passé l'essentiel de ma nuit à me retourner sur mon lit

Houlalala ne te ruine pas la santé ni la vie pour un problème à la con (oui ce coup ci j'ai le courage de le dire ).
Dans le pire des pires des cas je referais carrément tout le control RichTextBox (ça fait pas si peur, j'ai déjà fait ce genre de truc. En prime, certain en ont déjà développé et posté ici tout un tas de control, la solution la plus simple se trouve peut être là )

En tous cas MERCI de t’investir autant

et j'ai découvert certains comportements qui m'ont carrément laissé "baba"

Oui je ne saurais plus dire sur quel control Ms exactement, mais j'ai moi aussi déjà découvert certaines choses qui rende biennn malade

Je te demande alors encore un peu de patience, Pollack (car ce jeu en vaut largement la chandelle).

Aucun problème (je vais quand même pas me plaindre alors que tu passe des heures à potasser sur mon problème )
Surtout que (malgré qu'on me fasse faire des choses que je ne devrais pas faire, et ce sans rallonger mes délais de livraison ) j'ai du continuer d'avancer sur mon projet et abandonner cette os dans la gamelle (elle étais facile ^^), le problème est documenter pour la version Alfa.

Donc ne te fait pas de soucis, prend ton temps, repose toi, et vas a la pèche si le cœur t'en dit. N'oublie pas que je ne suis qu'on anonyme sur un fofo de développement

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 janv. 2012 à 22:12
C'est juste que je suis un vieux crouton et que je suis très têtu.
Où en suis-je ? J'ai déjà tout refait très différemment de ce que j'avais déjà.
Je n'ai plus le moindre aléa (j'en avais dans mon tout premier "jus" et ils t'ont échappé)
Je m'attaque demain au dernier "petit os".


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
25 janv. 2012 à 10:18
Je ne sait pas trop quoi dire sauf encore une fois merci

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 janv. 2012 à 19:27
Hé bien !
Il semble bien que j'ai réussi à tout faire en dépit de cette dll dont les réactions ne sont pas toujours les mêmes, ce qui rend assez complexe de déterminer si l'on avance dans le texte ou si l'on recule. Il a fallu deux feintes de plus pour y parvenir.
Tout semble maintenant là, mais dans un désordre (le code) incroyable, qu'il va me falloir réorganiser de manière moins dispersée.
A plus.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
26 janv. 2012 à 10:30
Bà bravo
Me resteras plus qu'à "traduire" en VB.NET

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 janv. 2012 à 10:38
Oui.
Une question (pendant que j'y suis et que je peux encore perfectionner par un ajout) :
Quid si l'utilisateur, en mode normal (sans sélection, donc) modifie la plage que j'appelle "pré" (344567 dans l'exemple jusqu'à présent traité) ?
Que dois faire l'outil parmi ces possibilités :
1) refuser toute modif de cette plage ?
2) accepter, sauf si modification de sa longueur ?
3) accepter, y compris si modification de sa longueur ?
Car si la chose est à traiter, quelle que soit ta réponse, c'est maintenant, qu'il sera plus facile de le faire (je serais incapable d'y revenir ultérieurement sans mal au crâne, compte tenu de la complexité de cette horloge)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
26 janv. 2012 à 10:49
Mon idée étais de ne pas pouvoir modifier "pré" mais de traiter cette plage comme un caractère unique.
Donc :
- placer le curseur dans cette plage sélectionnerais alors la plage
- supprimer le 1er carac de la plage (avec touche "Suppr") supprime la plage
- supprimer le dernier carac de la plage (avec touche "retour arrière") supprime la plage

Donc 1 refuser toute modif de cette plage.

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 janv. 2012 à 11:13
Bien. Je rajoute cela (cet aprem) et mets tout le code ici ensuite.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
26 janv. 2012 à 14:13
GÉNIALE
Je regarde en détail, je met a ma sauce, et poste la version Dot.NET

Je ne trouve pas grand chose à redire, ça me parais très bien

Encore un TRÈS GROS MERCI

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
26 janv. 2012 à 16:43
Décidément on à décidé de ne pas me laisser faire mon job cette semaine
Je me ré attaque à ce sujet dé que possible (début / milieu semaine prochaine si tout vas bien)

Peut être ce week end

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
5 avril 2012 à 12:02
Bon je repasse par ici (il étais temps ).
Des problèmes en clientèles / d'autre besoins de mes collègues / ... ont énormément ralentie le développement du projet qui avais besoin de ce bout de code (résulta, mon directeur : "projet mit en attente pour un temps indéterminé" )
On m'a lancé sur beaucoup d'autre sujet entre temps, mais dé que ce projet sera remit d’actualité (j’espère que ça viendras vite). Je viendrais poster ici le code promis

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Rejoignez-nous