MshFlexgrid - détection sortie sur la partie "BackcolorBKG"

cpapy - Modifié le 23 avril 2017 à 17:57
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 24 avril 2017 à 20:28
Bonjour,

J'utilise un MSHflexGrid qui rempli en hauteur la totalité de l'écran et ne contient qu'une dizaine de lignes. Il en résulte que sa partie basse est vide.

Je souhaiterais savoir s'il existe un moyen de détecter les clicks de la souris sur cet espace vide (sans utiliser le test de la couleur BackcolorBKG)

Par avance merci.

4 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
Modifié le 24 avril 2017 à 00:53
Bonjour
possible mais assez lourd (nécessité d'utilisation de textheight et de calculs en fonction du paramètre y de l'évènement mousedown !
il te sera beaucoup plus simple de réduire la hauteur de ta grille

Attention : TextHeight n'est pas une propriété de la grille, mais une méthode VB6 (à lire dans ton aide VB6)
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Bonjour Mr Ucfoutu,

J'ai trouvé cette solution qui ne me convient pas parce que trop lourde.

En fin de chargement de la table, j'exécute les instructions suivantes:

MSHFlexGrid1.AddItem ""
MSHFlexGrid1.RowHeight(MSHFlexGrid1.Rows - 1) = 0

Lorsque je clique sur la partie non chargée
 If MSHFlexGrid1.MouseRow = MSHFlexGrid1.Rows - 1 Then 
" ----> Je suis en dehors de la table"


Ce n'est pas très élégant mais je n'ai rien trouvé d'autre pour solutionner mon problème


Alors, si vous avez mieux...................

Merci encore pour votre aide.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 24 avril 2017 à 16:42
bonjour
Sans certitude car VB 6 est loin pour moi
Quand tu cliques dans la MSHflexGrid tu récupères la ligne cliquée dans MSHFlexGrid.RowSel


if MSHFLexGrid.RowSel = -1 then
' je suis en dehors de la table
end if


Dans ce cas tes 2 lignes supplémentaires sont inutiles

Maintenant la question que je me pose : pourquoi détecter les clicks Souris dans cette zone ?

un bonjour aussi à Ucfoutu en passant


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
0
Bonjour vb95,


Je viens de mettre en application votre suggestion.
Malheureusement ça ne marche pas.

A votre question au sujet des clicks sur cette zone: Par un click avec la souris, j'affiche un menu.

Merci pour votre aide.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
24 avril 2017 à 20:28
Désolé si mes souvenirs m'ont trahi
0
Rejoignez-nous