OVH Cloud OVH Cloud

Transformer le curseur listBox?

13 réponses
Avatar
X
Bonjour :o)

Je tente de changer de curseur sur une listBox, suivant l'état de cette
dernière (enabled), alors j'ai comme procédure:

Sub List1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X
As Single, Y As Single)

Sur les FAQ VB il y a un exemple, mais pour une bouton (non indicé),
alors que la listBox est indicée:
http://faqvbnet.developpez.com/?page=form

Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) _
Handles Button1.Click
Cursor = Cursors.WaitCursor ' On passe le curseur en sablier
Cursor = Cursors.Arrow ' On repasse le curseur en normal
End Sub

Mon problème:
Comment transposer ce code de changement de curseur à ma listBox(indicée)
???

Merci.
--
ECRIRE
http://irolog.free.fr/ecrire/index.htm

LOGICIELS
http://irolog.free.fr

SITE
http://irolog.free.fr/joe/index.htm

FAQ VB
http://faq.vb.free.fr

PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
********************************************************

3 réponses

1 2
Avatar
X
Bon Patrice,

Ça marche, merci beaucoup :o)

En fait je n'ai pas imaginé ce subterfuge, car je présumais que sans
mettre la gestion, dans ou depuis un évènement "MouseMove" ça ne
fonctionnerait pas, mais en fait cet évènement est invoqué de façon
transparente dès qu'on passe sur un liste (évidemment), mais bon, je n'ai
pas percuté, en tout cas c'est plus beau désormais, mais j'ai dû modifier un
paquet de code...

Donc si tu as le temps, je vais et te le passer, et le mettre en ligne
pour tester, dès fois que je n'aurais pas vu quelque chose, plein d'yeux
valent mieux que deux, (surtout torturer les listes dans tous les sens),
lol.
Heureusement que je n'ai pas dû passer au (sous)-subClassement, car j'étais
mal, je connais à peine...

Je te le passe et je le mets en ligne tout à l'heure, merci encore :o)
--------------

"Patrice Henrio" a écrit dans le message de
news: %
Désolé. Effectivement je viens de faire des tests plus précis et tu as
raison.
Je te propose alors d'utiliser une variable T(0 to 3) as boolean qui
définit la valeur enabled sans la changer dans le contrôle et tu testes
cette variable avant les évènements des listes.
Je t'envoie un exemple.

Il y a sûrement plus propre type subclassement ou autre, mais c'est le
plus simple qui me vient à l'esprit.

"X" <.> a écrit dans le message de news:

Salut :o)

Merci, mais... "Non", je maintiens, ça ne marche pas, je te renvois
ton
exemple modifié.

Tu avais l'impression que ça marchait car tu as choisit "harrow" et
sur
la liste et sur la form, alors tu ne pouvais pas voir la différence,
c'était
toujours le même (en liste1.enabled), mais là, vois l'exemple retourné,
j'ai
choisit 3 types de curseurs, un "harrow" picture (list1.enabled), 1
"harrow"
constanteVB pour la form, et 1 "nodrop" picture (list1.disabled), et là
on
voit que ça coince...

Tandis que dans le 2 label, où j'ai chargé la même chose (que pour la
list1), ça marche très bien car ils ne sont jamais "disabled"

Pour répondre à ce que tu dis (mousePointer) est définit dans les
propriétés invisibles de l'éditeur de propriétés en (custom)...

C'est pas très important, mais si tu as une idée pour contourner le
problème, ne m'oublies pas lol :o)

Par contre si tu ne vois pas, informe-moi stp, je reposerai la
question,
peut être que quelqu'un va finir par trouver, tout vient de la
list.disabled
qui dans ce cas, ne passe pas l'évènement "mouseMove"...

@+, bye, Joe :o)

--
ECRIRE
http://irolog.free.fr/ecrire/index.htm

LOGICIELS
http://irolog.free.fr

SITE
http://irolog.free.fr/joe/index.htm

FAQ VB
http://faq.vb.free.fr

PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
********************************************************



"Patrice Henrio" a écrit dans le message de
news:


"X" <.> a écrit dans le message de news:
%
Merci :o)

Mais ça ne marche pas!
J'aurais dû m'en rendre compte plus tôt, à partir du moment où la liste
à
la
propriété enabledúlse, l'évènement MouseMove n'est plus opérationnel,
je
ne sais pas comment faire???

En plus le faits d'appeler la constante VB du curseur ne fonctionne
pas,
je ne sais pas pourquoi, voici:

Sub List1_MouseMove(Index As Integer, Button As Integer, Shift As
Integer,
X
As Single, Y As Single)
' liste (est la liste enabled=true, le autres enabledúlse (4
listes(i)
au total)

If Index = (liste - 1) Then List1(Index).MouseIcon >>>> LoadPicture(App.Path
& "harrow.cur") ' ok
If Index <> (liste - 1) Then List1(Index).MouseIcon >>>> LoadPicture(App.Path
& "nodrop.cur") 'ok

' If Index = (liste - 1) Then List1(Index).MousePointer = vbArrow '
fonctionne pas
' If Index <> (liste - 1) Then List1(Index).MousePointer = vbNoDrop '
fonctionne pas
End Sub

Si tu as une idée, merci :o)

--
ECRIRE
http://irolog.free.fr/ecrire/index.htm

LOGICIELS
http://irolog.free.fr

SITE
http://irolog.free.fr/joe/index.htm

FAQ VB
http://faq.vb.free.fr

PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
********************************************************



"Patrice Henrio" a écrit dans le message
de
news:

"X" <.> a écrit dans le message de news:

Merci :o)

Je vais tenter de mettre ça en place, je te dirais...


ECRIRE
http://irolog.free.fr/ecrire/index.htm

LOGICIELS
http://irolog.free.fr

SITE
http://irolog.free.fr/joe/index.htm

FAQ VB
http://faq.vb.free.fr

PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
********************************************************



"Patrice Henrio" a écrit dans le message
de
news: e$

"X" <.> a écrit dans le message de news:


Bonjour :o)

Je tente de changer de curseur sur une listBox, suivant l'état
de
cette dernière (enabled), alors j'ai comme procédure:

Sub List1_MouseMove(Index As Integer, Button As Integer, Shift As
Integer, X As Single, Y As Single)

Sur les FAQ VB il y a un exemple, mais pour une bouton (non
indicé),
alors que la listBox est indicée:
http://faqvbnet.developpez.com/?page=form

Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) _
Handles Button1.Click
Cursor = Cursors.WaitCursor ' On passe le curseur en sablier
Cursor = Cursors.Arrow ' On repasse le curseur en normal
End Sub

Mon problème:
Comment transposer ce code de changement de curseur à ma
listBox(indicée) ???

Merci.
--
ECRIRE
http://irolog.free.fr/ecrire/index.htm

LOGICIELS
http://irolog.free.fr

SITE
http://irolog.free.fr/joe/index.htm

FAQ VB
http://faq.vb.free.fr

PRINCIPE D'UTILISATION DES NEWSGROUPS MICROSOFT
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
********************************************************












If Not List1.Enabled Then
List1.MousePointer = vbArrow
List1.MouseIcon = Label1.MouseIcon

Else
List1.MousePointer = vbHourglass
List1.MouseIcon = Label2.MouseIcon
End If

s'écrit tout aussi bien

If List1.Enabled Then
List1.MousePointer = vbHourglass
List1.MouseIcon = Label2.MouseIcon
Else
List1.MousePointer = vbArrow
List1.MouseIcon = Label1.MouseIcon
End If

Le not provient d'une petite complication lors du test et j'ai oublié
de
remettre en ordre.









Je ne comprends pas chez moi ça marche. Je t'envoie le fichier form1 et
projet1 qui contient le minimum.
Même avec enabled = false, l'évènement mousemove répond.

Sub List1_MouseMove(Index As Integer, Button As Integer, Shift As
Integer,
X
As Single, Y As Single)
' liste (est la liste enabled=true, le autres enabledúlse (4
listes(i) au total)

If Index = (liste - 1) Then
List1(Index).MousePointer = vbArrow
List1(Index).MouseIcon = LoadPicture(App.Path &
"harrow.cur") ' ok
else
List1(Index).MousePointer = vbNoDrop
List1(Index).MouseIcon = LoadPicture(App.Path &
"nodrop.cur") 'ok
End If
End Sub

Je ne sais plus pourquoi mais je crois qu'il faut définir MousePointer
avant
MouseIcon (Je n'en suis pas très sur)
Mais si tu ouvres projet1 (mes deux labels sont visibles uniquement pour
montrer le principe) et que tu lances tu verras que ça marche
normalement.
Je suppose que Liste est une variable globale de type integer.

















Avatar
X
Oui j'avais vu les quelques erreurs d'écriture, pas grave :o)
Au fait, j'ai supprimé le code du load car il suffit en partant à (-1) de
l'envoyer directement dans le bouton...
Mais de toute façon in fine je n'ai conservé que le principe...

---

"Patrice Henrio" a écrit dans le message de
news:
Petite erreur sans importance dans le code il faut remplacer chaque

MousePointer=vbHourGlass

par

MousePointer=VbCustom

(Il y en a un dans form_laod et un dans command1_Click)



Avatar
X
Patrice,

Voici à tester stp :o)
Surtout les listes, un zip-auto ext

http://irolog.free.fr/A_tester.exe



"Patrice Henrio" a écrit dans le message de
news:
Petite erreur sans importance dans le code il faut remplacer chaque

MousePointer=vbHourGlass

par

MousePointer=VbCustom

(Il y en a un dans form_laod et un dans command1_Click)



1 2