mattcau
Messages postés3Date d'inscriptionmercredi 19 septembre 2007StatutMembreDernière intervention21 septembre 2007
-
19 sept. 2007 à 15:35
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
21 sept. 2007 à 23:05
Bonjour à tous.
J'ai réaliser un mots croisés avec un msflexgrid.
Chaque case du grid permet de saisir une lettre (avec une boite de texte qui se deplace en fonction de la case sur laquelle on dbl clik)
néanmoins je voudrai que dans certaines cases (les cases ou j'ai mis un fond de couleur) on ne puisse rien saisir.
C'est dire que lorsque l'on dbl click dessus rien ne se passe.
Car a l'heure actuel quand je dbl click sur 1 case noires du mots croisés, la case s'active et le fond de couleur disparaît quand je quitte la case.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 19 sept. 2007 à 22:22
ben sur le double click, juste avant d'afficher la textbox, tu vérifie la couleur de fond de la case. Si elle est noire, tu passe ton chemin, si elle est blanche, tu ouvre la textbox.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 21 sept. 2007 à 00:14
Je ne sais comment tu mets la couleur de fond à ta grille, mais ça devrait être avec CellBackColor, j'imagine.
Donc, sur double-click, tu vérifes
If MaGrille.CellBackColor = vbBlack then ... ' ou la couleur que tu lui a donnée
Mais tu devrais laisser tomber les double-clicks qui vont finir par devenir lassant. Tu devrais y aller avec les touches claviers puisqu'on parle de lettres ici...
En fait, moi j'utilise le double-click pour colorer la grille et les touches claviers pour me déplacer. Et pour être plus précis dans l'explication, j'utilise des Labels noirs en guise de cases noires et un @ en guise caractère caché par ce Label et qui me permet d'empêcher le curseur de demeurer sous la case noire. Et j'utilise KeyPress pour écrire la lettre et me déplacer automatiquement. Une fois la lettre pesée, le curseur se retrouve à droite et si la limite droite est atteinte, il descend d'une ligne et se retrouve sur la première case de gauche. S'il trouve un @, il saute une case de plus.
Ma méthode est un peu tordue, mais elle fonctionne plutôt bien...