Garder une formp collé a une autre urgent svp

[Résolu]
Signaler
Messages postés
6
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
19 novembre 2009
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour , escusez moi je vais tacher d'etre clair mais ce n'est pas evident. Je vous expose mon soucis . j'ai tenter de trouver le moyen de donner une semi transparence a une listbox en vb2008 le probleme c'est que apres avoir chercher longtemps je n'ai pas trouver de solution . j'ai donc cree deux form - (exemple form1 et form2)
la form2 se placant derriere la form1 ... dans la form2 j'ai placer la meme image que dans la form1 mais je l'ai modififer de sorte a etre plus clair et plus trouble (effet de semi transparence) j'ai ensuite donner la couleur de la listbox en transparencykey.... j'ai donc l'image de la form2 dans les listbox de la form1 le probleme est que je peu faire en sorte que la form1 suive la form2 mais quand je clique sur une autre application , et que je clique dans la taskbar sur form1 la form2 ne suis pas ..
j'ai tenter je faire suivre la form2 grace a form1_actived par exemple
mais comme la form1 doit revenir devant j'ai donc une boucle sans fin
le meilleur resultat que j'ai obtenu c'est que ca suive mais j'a un tas de clignotement desagreable qui dure 4 seconde a peu pres .
si quelqu'un a une solution d'avance un grand grand merci .


apprendre ou enseigner ?

3 réponses

Messages postés
6
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
19 novembre 2009

j'ai trouver une solution merci ....
je vous explique a celui que ca interresse :
meme proceder que le premier message : ensuite ->
a la place de jouer avec form1_actived et avoir une boucle sans fin je joue avec form2_actived je cache l'icone de la form1 dans la barre des taches et laisse uniquement celui de la form2 en evenement je place : form1.topmost = true
form1.topmost = false
le probleme a ce moment la c'est que je ne peu pas cliquer sur les item de la listbox a cause de leur transparent (a moin de cliquer sur le texte exactement ) j'ai donc rajouter ceci :

Private Sub form2_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
If MouseButtons.Left Then
Dim s = -1
For Each nitem In detail.ListView1.Items
s = s + 1
Dim haut = detail.ListView1.Items.Item(s).Position.Y

Dim mousey = MousePosition.Y
mousey = mousey - Me.Top
mousey = mousey - 98

If mousey = haut Then GoTo cluck
If mousey = haut + 1 Then GoTo cluck
If mousey = haut + 2 Then GoTo cluck
If mousey = haut + 3 Then GoTo cluck
If mousey = haut + 4 Then GoTo cluck
If mousey = haut + 5 Then GoTo cluck
If mousey = haut + 6 Then GoTo cluck
If mousey = haut + 7 Then GoTo cluck
If mousey = haut + 8 Then GoTo cluck
If mousey = haut + 9 Then GoTo cluck
If mousey = haut + 10 Then GoTo cluck
If mousey = haut + 11 Then GoTo cluck
If mousey = haut + 12 Then GoTo cluck
If mousey = haut + 13 Then GoTo cluck
If mousey = haut + 14 Then GoTo cluck
If mousey = haut + 15 Then GoTo cluck
If mousey = haut + 16 Then GoTo cluck
If mousey = haut + 17 Then GoTo cluck
If mousey = haut + 18 Then GoTo cluck
If mousey = haut + 19 Then GoTo cluck
If mousey = haut + 20 Then GoTo cluck
If mousey = haut + 21 Then GoTo cluck
If mousey = haut + 22 Then GoTo cluck
If mousey = haut + 23 Then GoTo cluck
If mousey = haut + 24 Then GoTo cluck
If mousey = haut + 25 Then GoTo cluck
If mousey = haut + 26 Then GoTo cluck
If mousey = haut + 27 Then GoTo cluck
If mousey = haut + 28 Then GoTo cluck
If mousey = haut + 29 Then GoTo cluck
If mousey = haut + 30 Then GoTo cluck
If mousey = haut + 31 Then GoTo cluck
If mousey = haut + 32 Then GoTo cluck
GoTo fin




cluck:
Dim ite = form1.ListView1.Items.IndexOf(form1.ListView1.SelectedItems.Item(0))
form1.ListView1.Items(ite).Selected = False
form1.ListView1.Items(s).Selected = True



fin:


Next

End If
detail.TopMost = True
detail.TopMost = False

End Sub


et tout fonctionne ...
a bientot et escuser si mon message a fait perdre du temps a quelqu'un .
apprendre ou enseigner ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

umm, pas sur que ton idée soit des meilleures
doit bien y avoir un moyen propre en vb.net de rendre un contrôle semi-transparent..

bref sinon dans le cas actuel, tu dois subclasser ta form
lors du WM_MOVE (de mémoire) de la form1 (celle du dessous si j'ai bien compris), déplace la form2 (celle qui contient ta listbox) selon la nouvelle position

les mots WINPROC VB.NET devraient te donner quelques exemples

++

[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
beh elle va être belle ton appli...