Communauté Fb
Follow us on twitter
Les vidéos du site
Le site complément

Programmer en vb

Bonjour et bienvenue,

Programmer en VB est le site qui vous fera prendre conscience que vous pouvez concevoir votre programme informatique vous-même, que vous soyez artisan, employé ou étudiant.

Le Visual Basic est un langage informatique très puissant, très flexible et très abordable.
Une version en application se trouve sous Office
Excel pour exemple :
Tapez Alt + F11 à l’aide de votre clavier puis vous voilà dans l’éditeur de code VBA.

Notre forum d’entraide vous offre des tutoriels ainsi que divers exemples tout prêt à adapter à votre projet personnel.
Nous vous demandons uniquement de la bonne humeur et de la bonne volonté pour toutes questions ou toutes aides quelle qu’elle soit.
Sachez que pour progresser rapidement il est conseillé d’aider au mieux les autres membres.
Nous ne sommes pas là pour juger les qualités ou défauts de codes proposés, mais pour trouver ensemble la solution à votre demande.

A vos claviers :

Afin de remplir le forum, nous vous demandons de partager sur les réseaux sociaux et autres.
https://www.facebook.com/AdminPVB/


Merci de nous rejoindre sur http://programmer-en-vb.forumactif.org/
Merci d'avoir pris le temps de lire.
Merci pour votre inscription.

L'équipe de Programmer-en-VB

Forum de programmation VBA et VB.NET

Welcome if you do not speak french,you are able to translate the whole topics with the flags just below this message. Click to English

Visual Basic Application et VB.net de puissants langages à la portée de tous.

Participez et soyez acteurs des divers forums ci-dessous.

Bienvenue à chaque nouveaux membres et merci à tous ceux qui font vivre ce forum.


Qui est en ligne ?

Il y a en tout 6 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 6 Invités

Aucun


Le record du nombre d'utilisateurs en ligne est de 65 le Mar 8 Juil - 23:40

Statistiques

Nos membres ont posté un total de 5795 messages dans 665 sujets

Nous avons 544 membres enregistrés

L'utilisateur enregistré le plus récent est annie.saillard

Recherche dans les forums

Utiliser cette méthode afin de trouver rapidement les discussions disponible sur notre forum.


Derniers sujets

» Petit souci d'affichage de valeurs(Tableau) valeurs saisies au clavier
par Berly Mar 17 Avr - 16:49

» Recherche dans base de donnée
par Berly Ven 13 Avr - 20:41

» Instants musique
par Berly Ven 13 Avr - 19:53

» ASTUCES UTILES
par IFFIC Lun 9 Avr - 18:01

» macro pour trie d'un tableau
par grisan29 Dim 8 Avr - 19:23

» Module de class
par Berly Sam 31 Mar - 15:09

» Générer des nombres aléatoire,pour jeu ou autre.
par Berly Mar 27 Mar - 19:42

» Les Boucles
par Berly Lun 26 Mar - 19:32

» Jeu de mémoire sur base de module de class
par Berly Dim 25 Mar - 16:55

» Source intéressante
par Berly Dim 25 Mar - 11:11

» Coloriser cellule Excel en fonction d'un click sur bouton
par Berly Jeu 15 Mar - 21:09

» Traduction D'algorithmes
par Berly Mar 13 Mar - 21:56

» Exemple Tableaux virtuels.
par Berly Sam 10 Mar - 17:06

» Fausser les références d'une grille par références relatives
par Berly Mer 7 Mar - 21:01

» SOS traduction
par Berly Dim 4 Mar - 19:19

Utiliser le bouton résolu

Dans votre message d'origine
cliquer sur le bouton



Ensuite tout en bas sur
Modifier le titre du sujet
cliquer sur le bouton

Résolu !!!

Ensuite changer l’icône du sujet par le bouton

Voilà pas plus compliqué que cela.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Partenaires


créer un forum



Annuaire referencement


Flux RSS


MSN 

Avril 2018

LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Calendrier Calendrier

Petit souci d'affichage de valeurs(Tableau) valeurs saisies au clavier

Sam 14 Avr - 21:19 par Berly

Bonsoir a tous  Very Happy.

Voila j'ai un petit souci de méthode .

Je poste le code ,Ne vous souciez pas des zones de commentaire.

A la fin le nombre d éléments du tableau correspond bien au nombres de valeurs saisies par l'utilisateur .

Je ne trouve pas la méthode pour afficher les valeurs .....bon c'est vrai que en ce moment je bricole  Rolling Eyes.

Merci pour vos réponses  Wink.

Code:
[Imports …


[ Lecture complète ]
Traduction D'algorithmes

Mer 7 Mar - 22:28 par Berly

Bonsoir A toutes et Tous .

J'ouvre ce Post en vue d'une éventuelle collaboration de membres désireux de collaborer a l'évolution de tous.

Le but de ce forum ,consisterai a rechercher des Algorithmes en "Pseudo-code", sans restriction de ressources en appliquant le principe du copié collé .(Sans omettre de citer les sources de provenance  Very Happy,Livres ,exercices scolaires Very Happy ,etc.....)

La …

[ Lecture complète ]
SOS traduction

Dim 4 Mar - 9:11 par e.sainturlo

Bonjour à tous,

Je souhaite comprendre ce qui se cache derrière cette longue suite d'instructions imbriquées les unes dans les autres:

numero2 = Conversions.ToInteger(Operators.AddObject(numero2,Operators.ModObject(Operators.MultiplyObject(NewLateBinding.LateIndexGet(MPMP, new object[] {numero1,numero3}, null), Strings.Asc(MCMC.Substring(numero3, 1)) - 65), 26)));

Quelqu'un saurait-il …

[ Lecture complète ]
Et si on parlait des fichiers.txt et fichiers.csv

Ven 2 Fév - 20:51 par Berly

Bonsoir le forum  Very Happy

Je viens vers vous pour étudier en vbnet les fichiers.

Actuellement j'étudie dans une autre langage ces fichiers.



https://fr.wikipedia.org/wiki/Comma-separated_values.


Ces bases de données sont intéressantes a exploiter ,pour diverses applications dans la vie de tous les jours.


1° Création de fichiers avec extension ou pas.Y a t'il une bibliothèque native en …

[ Lecture complète ]
VB 2005 express

Mar 6 Fév - 17:02 par christian80.1951

Bonjours a tous,
J'utilise vb 2005 express.
dans la form1.vb[design] je créer une listebox .
Lorsque je veux la positionner dans cette form , lors de son déplacement avec la souris ma listbox devient invisible,
ce qui rend son positionnement mal-aisé.
Ce phénomène se produit aléatoirement ! ( certainement une mauvaise manip ) et cet état persiste dans le projet.
J'espère être compréhensible.


[ Lecture complète ]
Création d'un raccourci sur le Bureau pour son Application

Mar 10 Oct - 18:49 par IFFIC

Bonsoir à tous, ou Bonjour s'il est plus tôt qu'à cette heure,
Je ne suis pas passé bien souvent par ici, car j'étais pris sur un gros projet depuis voici un peu plus d'un an.

Au bénéfice de bidouilles trouvées dans mes travaux, je vous livre celle-ci:
Car il est bien confortable de n'avoir pas à fouiller dans l'arborescence d'un disque externe ou une clé USB, voire en ayant changé de …

[ Lecture complète ]
Petits bidouillages pour ce faciliter La vie ,Astuces et codes pratique

Dim 11 Juin - 12:20 par Berly

Bonjour le Forum  Very Happy.

Lorsque j'écrivais dans mon code Console.Writeline ("Patati,Patata,......) ,j'ai d'abord utilisé le copié collé en changeant la valeur du texte .

Bon d'accord ,c'est bien mais ,ça me saoul un peu ,au fur et a mesure de mes apprentissages ,j'ai découvert les fonctions  Very Happy.

Maintenant je partage celle ci avec vous .

On est la sur un exemple de code en "Mode …

[ Lecture complète ]
Menustrip Vbnet Visual Studio

Sam 16 Sep - 21:05 par Berly

Bonsoir le Forum  Very Happy

Je suis actuellement en construction  d'un logiciel pour les enfants en scolarité primaire.(Visual Studio Community 2017)

Je l'ai commencé et il fonctionne parfaitement a ce stade.

J'utilise Le contrôle MenuSrip.

Au commencement il est question d'afficher par catégorie tables de 1 a 10 .
Un Premier Bouton "Tables de Multiplications" Aucun événement 
Puis Ajouts …

[ Lecture complète ]
suppression d'un fichier txt en cours d'utilisation

Mar 5 Sep - 9:51 par La boc

Bonjour,

dans mon application j'ai un fichier txt qui est chargé dans un DataGridView en fonction du n° ID.

Quand je supprime un ID, je dois aussi supprimer ce fichier, quand je fait un delete ça marche bien, le fichier est bien supprimé du dossier mais quand je ferme l'application j'ai un message box:

"Violation de l’accès concurrentiel:
Delete command a effectué 0 des enregistrements …

[ Lecture complète ]

collision entre 2 controls

Partagez
avatar
beastsouls

Messages : 6
Date d'inscription : 16/03/2015

Résolu collision entre 2 controls

Message par beastsouls le Lun 16 Mar - 11:09

Bonjour,

Je possède deux labels de même taille tout les deux positionnés dans une picturebox. J'arrive à déplacer ces deux labels à volonté sur ma pictureBox, maintenant, ce que j'aimerais faire et que je n'arrive pas est:

Dès qu'un de mes labels touche un endroit d'un autre label ( quelque soit cet endroit), je voudrais le bloquer de manière à ce qu'il ne puisse pas passer au travers de l'autre label.

Voici mon code actuel:


Code:
Public Sub collision(ByRef ctl As Control, ByVal e As MouseEventArgs)
       For Each c As Control In pic_MAQUETTE.Controls
            If Not ctl.Equals(c) Then
                  If ctl.Bounds.IntersectsWith(c.Bounds) Then
                      If (ctl.Top >= c.Top + c.Height And ctl.Left <= c.Left + c.Width
                         And ctl.Left + ctl.Width >= c.Left) Or (ctl.Top + ctl.Height =
                         c.Top And ctl.Left <= c.Left + c.Width And ctl.Left +
                         ctl.Width >= c.Left) Then
                                ctl.Location = New Point(ctl.Left, c.Location.Y)
                       End If
                       If (ctl.Left + ctl.Width <= c.Left And ctl.Top >= c.Top + c.Height
                          And ctl.Top + ctl.Height <= c.Top) Or (ctl.Left = c.Left +
                          c.Width And ctl.Top >= c.Top + c.Height And ctl.Top +
                          ctl.Height <= c.Top) Then
                                 ctl.Location = New Point(c.Location.X, ctl.Location.Y)
                         End If
                    End If
              End If
       Next
End Sub

En espèrant que quelqu'un pourra m'aider Smile
Bien cordialement


Dernière édition par beastsouls le Jeu 19 Mar - 11:59, édité 1 fois
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1987
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: collision entre 2 controls

Message par AdminPVB le Lun 16 Mar - 16:10

Bonjour et bienvenue,
merci de faire confiance à ce forum,
Peux tu svp donner le code avec lequel tu déplaces les labels, j'ai besoin de créer un fichier à peu près similaire pour t'aider au mieux.
dans ton code il manque le Handles qui fait référence à ton objet afin d'éviter de mettre ctl as control,tu aura alors (byval sender as system.object)
voir le code suivant:
Code:
    Public Sub collision(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles Label1.MouseDown,
,Label2.MouseDown


        For Each c As Control In Me.Controls
            If Not sender.Equals(c) Then
                If sender.Bounds.IntersectsWith(c.Bounds) Then
                    If (sender.Top >= c.Top + c.Height And sender.Left <= c.Left + c.Width _
                         And sender.Left + sender.Width >= c.Left) Or _
                     (sender.Top + sender.Height = c.Top And sender.Left <= c.Left + c.Width And sender.Left + sender.Width >= c.Left) Then
                        sender.Location = New Point(sender.Left, c.Location.Y)
                    End If
                    If (sender.Left + sender.Width <= c.Left And sender.Top >= c.Top + c.Height _
                          And sender.Top + sender.Height <= c.Top) Or (sender.Left = c.Left +
                          c.Width And sender.Top >= c.Top + c.Height And sender.Top +
                          sender.Height <= c.Top) Then
                        sender.Location = New Point(c.Location.X, sender.Location.Y)
                    End If
                End If
            End If
        Next
    End Sub
c'est tout de même une force du VB.net.
 
A bientôt.


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
beastsouls

Messages : 6
Date d'inscription : 16/03/2015

Résolu reponse

Message par beastsouls le Lun 16 Mar - 16:58

Bonsoir, tout d'abord merci de ton interet pour mon problème ^^

voici le code pour déplacer les labels :

Code:
Private Sub ctrl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        'si la souris passe sur le controle il devient le controle courant
        _controlCliquer = sender
        ' Vérification si bouton gauche de la souris est bien enfoncé
        If (e.Button = MouseButtons.Left) Then
            'si le déplacement est autorisé et que le nombre d'élèment(s) sélectionné(s) n'est pas null
            If _deplace = True And _tab_control_selectionner.Count > 0 Then
                'pour tous les controls sélectionnés
                For Each c As Control In _tab_control_selectionner
                    'le control devient le control courant
                    _controlCliquer = c
                    If _controlCliquer.Location.X + e.X - _controlCliquer.Size.Width / 2 > 0 _
                        And _controlCliquer.Location.X + e.X + _controlCliquer.Width - _controlCliquer.Size.Width / 2 < Design_Surface1.pic_MAQUETTE.Width Then
                        _controlCliquer.Location = New Point(_controlCliquer.Location.X + e.X - _controlCliquer.Size.Width / 2, _controlCliquer.Location.Y)
                    Else ' si on est ici, c'est que le controle doit toucher a gauche ou a droite

                        If _controlCliquer.Location.X + e.X - _controlCliquer.Size.Width / 2 > 0 Then ' si  ce test passe alors c'est que l'on déborde en largeur
                            _controlCliquer.Location = New Point(Design_Surface1.pic_MAQUETTE.Width - _controlCliquer.Size.Width, _controlCliquer.Location.Y)
                        Else
                            _controlCliquer.Location = New Point(0, _controlCliquer.Location.Y) ' sinon on bloque le controle sur la gauche
                        End If
                    End If


                    If _controlCliquer.Location.Y + e.Y - _controlCliquer.Size.Height / 2 > 0 And _controlCliquer.Location.Y + e.Y + _controlCliquer.Height - _controlCliquer.Size.Height / 2 < Design_Surface1.pic_MAQUETTE.Height Then
                        _controlCliquer.Location = New Point(_controlCliquer.Location.X, _controlCliquer.Location.Y + e.Y - _controlCliquer.Size.Height / 2)
                    Else ' si on arrive ici, c'est que le controle doit toucher en hauty=0 ou en basy=design_surface1.pic_maquette.heigth

                        If _controlCliquer.Location.Y + e.Y - _controlCliquer.Size.Height / 2 > 0 Then ' si on est plus grand que 0 alors il faut mettre le controle au maximum en bas
                            _controlCliquer.Location = New Point(_controlCliquer.Location.X, Design_Surface1.pic_MAQUETTE.Height - _controlCliquer.Size.Height)
                        Else
                            _controlCliquer.Location = New Point(_controlCliquer.Location.X, 0) ' sinon on bloque le controle en haut
                        End If
                    End If
                Next
            End If

            Design_Surface1.collision(_controlCliquer, _deplace)
      End if
End sub

et voici une maj de ma fonction "collision" :

Code:
For Each c As Control In pic_MAQUETTE.Controls
            If Not ctl.Equals(c) Then
                If ctl.Bounds.IntersectsWith(c.Bounds) Then
                    deplace = False
                    'deborde par au-dessus ou en-dessous
                    If ctl.Location.Y < c.Location.Y And ctl.Location.Y + ctl.Height > c.Top And ctl.Location.Y + ctl.Height < c.Location.Y + c.Height Then
                        If ctl.Location.X >= c.Left And ctl.Location.X + ctl.Width <= c.Right Then
                            ' _deplace = False
                            ctl.Location = New Point(ctl.Location.X, c.Location.Y - ctl.Height)
                            _deplace = True
                        Else
                            If ctl.Location.X < c.Left And ctl.Location.X + ctl.Width < c.Right And ctl.Location.X + ctl.Width > c.Left Then
                                ' _deplace = False
                                ctl.Location = New Point(c.Left - ctl.Width, ctl.Location.Y)
                                _deplace = True
                            Else
                                If ctl.Location.X > c.Left And ctl.Location.X < c.Right And ctl.Location.X + ctl.Width > c.Right Then
                                    ' _deplace = False
                                    ctl.Location = New Point(c.Right, ctl.Location.Y)
                                    _deplace = True
                                End If
                            End If
                        End If
                    Else
                        If ctl.Location.Y > c.Location.Y And ctl.Location.Y < c.Bottom And ctl.Location.Y + ctl.Height > c.Location.Y + c.Height Then
                            If ctl.Location.X >= c.Left And ctl.Location.X + ctl.Width <= c.Right Then
                                ' _deplace = False
                                ctl.Location = New Point(ctl.Location.X, c.Bottom)
                                _deplace = True
                            Else
                                If ctl.Location.X < c.Left And ctl.Location.X + ctl.Width < c.Right And ctl.Location.X + ctl.Width > c.Left Then
                                    ' _deplace = False
                                    ctl.Location = New Point(c.Left - ctl.Width, ctl.Location.Y)
                                    _deplace = True
                                Else
                                    If ctl.Location.X > c.Left And ctl.Location.X < c.Right And ctl.Location.X + ctl.Width > c.Right Then
                                        ' _deplace = False
                                        ctl.Location = New Point(c.Right, ctl.Location.Y)
                                        _deplace = True
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        Next
    End Sub

maintenant, le label en collision avec l'autre label est bloqué sur le coté gauche et le côté droit du label ( même si en faite je pense qu'il devrait aussi être bloqué sur le haut et le bas (normalement)).

Le problème que j'ai maintenant est que le fait de mettre ma variable global "_deplace" ( qui permet le déplacement) à false au début de la fonction de collision, fait en sorte à ce que le label qui touche l'autre label est bloquer complétement et je dois relacher ma souris pour en recliquer sur le label afin de pouvoir le re déplacer.

J'aimerais que le fais de bloquer le label l'empêche uniquement de passer au travers de l'autre label tout ne m'obligant pas à relacher la souris afin de déplacer à nouveau mon label.

En espérant avoir était clair.
Bien cordialement

PS: la fonction collision et mouseMove se trouve dans deux classe différente
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1987
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: collision entre 2 controls

Message par AdminPVB le Lun 16 Mar - 19:03

Re,
j'ai deux petites questions supplémentaire.
1° Design_Surface1.collision(_controlCliquer, _deplace) _deplace est boolean hors dans ta fonction c'est un MouseeventArgs,il n'est donc pas possible pour moi de tester.


2° comment traites tu _tab_control_selectionner cela correspond à quoi ?

une collection ?

je tente de comprendre au mieux pour y arriver.

Ensuite au lieu de bloquer avec la variable Boolean _deplace=false ou true.
pourquoi au lieu du blocage ne pas refaire référence à la position de ton objet sur lequel il ne faut pas passer au travers du style:
ctl.left=ctl.left+10 ou ctl.top=ctl.top +10

J'espère me faire comprendre.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
beastsouls

Messages : 6
Date d'inscription : 16/03/2015

Résolu Re: collision entre 2 controls

Message par beastsouls le Mar 17 Mar - 9:00

bonjour ^^
en ce qui concerne _deplace, c'est effectivement un booléan. Aussi bien dans les parametres de la fonction collision et lors de l'appel de la fonction collision dans la fonction MouseMove.

En ce qui concerne
Code:
_tab_control_selectionner

c'est une list(of control) que je remplis en cliquant sur un controle en ayant la touche "ctrl gauche" appuyer => cela me permet ensuite de déplacer plusieurs control en même temps ^^


enfin en ce qui concerne le blocage et : "ctl.left=ctl.left+10 ou ctl.top=ctl.top +10" je comprends pas trop pourquoi faire cette manipulation :'(

PS: je travail sur une grille sur laquelle je dessine les points d'intersections de mes lignes et colonnes et à chaque fois que je relache la souris (MouseUp), les differents labels vont automatiquement se coller à la cellule la plus proche de laquelle le point superieur gauche de mon label se trouve => le label rentrera automatiquement en collision avec l'autre label ( il va se coller à lui ).

en tout cas merci encore de ton aide

Bien cordialement
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1987
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: collision entre 2 controls

Message par AdminPVB le Mar 17 Mar - 16:23

beastsouls a écrit:
Le problème que j'ai maintenant est que le fait de mettre ma variable global "_deplace" ( qui permet le déplacement) à false au début de la fonction de collision, fait en sorte à ce que le label qui touche l'autre label est bloquer complétement et je dois relacher ma souris pour en recliquer sur le label afin de pouvoir le re déplacer.

J'aimerais que le fais de bloquer le label l'empêche uniquement de passer au travers de l'autre label tout ne m'obligant pas à relacher la souris afin de déplacer à nouveau mon label.

Bonjour,
je pense que dès que ta souris est à l'endroit du contrôle label que tu veux déplacer indépendamment du mousedown,tu devrais libérer le boolean _deplace=true.
peut être cela évite de relâcher le click de la souris.

Désolé si je suis à coté de la plaque ,mais je tente encore de comprendre.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
beastsouls

Messages : 6
Date d'inscription : 16/03/2015

Résolu Re: collision entre 2 controls

Message par beastsouls le Mer 18 Mar - 8:56

Je vais t'expliquer le principe de se que je veux faire et une fois que tu auras compris, stp donne moi une version de code qui te semblerais marcher ( avec des commentaires si ça t'embête pas ) et ensuite, je me débrouillerais pour l'adapter à mes besoin. Ainsi on iras plus vite ^^

Principe :
1. je posséde deux labels
2. j'arrive à déplacer mes labels à ma guise
3. mais lors du déplacement, le label que je suis entrain de deplacer et capable de passer complétement au travers de mon autre label
4. pour eviter cela, je veux que:
a. quand la coordonnée X + la largeur du label en cour de déplacement touche l'autre   label, je le bloque pour que "la coordonnée X + la largeur du label entrain d'être déplacer" ne dépasse pas AutreLAbel.left
b. ou coordonnée X du label entrain d'être déplacer <= AutreLabel.right
c.  ou coordonnée Y du label entrain d'être déplacer+ hauteur du control entrain d'être déplacé <= AutreLabel.top
d. ou coordonnée Y du label entrain d'être déplacer >= AutreLabel.bottom
e. ou l'un ou l'autre point réunis (par exemple lorsque le coin inferieur droit de mon label en cour et entré dans AutreLabel mais pas le reste du label, juste le coin inférieur droit ^^)
f. tout en permettant à mon label courant de se déplacer de maniere fluide autour de mon AutreLabel.

J'espère avoir était clair.
Bien cordialement et bonne journée
Beastsouls
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1987
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: collision entre 2 controls

Message par AdminPVB le Jeu 19 Mar - 17:27

Bonjour,
merci pour ce complément d'information qui m'a permis de comprendre et à rechercher de mon coté.
tu as mis résolu sur le sujet.
je suppose donc que tu as trouvé.
moi pas encore j'ai fait un code mais je bloque pour faire le tour avec le label (un peu comme toi au départ)
j'arrive à gérer le coté left et le top mais pas le reste.
Peux tu svp partager la solution si toutefois quelqu'un d'autre cherche à faire plus ou moins la même chose.
voici mon code si toutefois cela peut aider quelqu'un:
Code:
Private Sub ctrl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove, Label1.MouseMove, Label3.MouseMove

        'si la souris passe sur le controle il devient le controle courant
        _controlCliquer = sender
        For Each c As Control In _tab_control_selectionner
            If e.Button = Windows.Forms.MouseButtons.Left Then
                Me.DoubleBuffered = True
                If _controlCliquer.right < c.Left Or _controlCliquer.left > c.Right Then _controlCliquer.left = _controlCliquer.left + e.X
                If _controlCliquer.bottom < c.Top Or _controlCliquer.top > c.Bottom Then _controlCliquer.top = _controlCliquer.top + e.Y
            End If
        Next
End Sub


Merci et à bientôt.


PS: A tous, problème contourné par l'auteur de ce fil.(contact par MP)
Si toutefois vous possédez une solution vous pouvez toujours nous en faire part.


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
Dayvid86

Localisation : 86000 (Poitiers)
Messages : 48
Date d'inscription : 03/06/2015
Age : 32

Résolu Re: collision entre 2 controls

Message par Dayvid86 le Jeu 4 Juin - 21:17

Bonsoir,

Justement j'ai besoin de cette info là moi Smile , comment je fais pour savoir si un contrôle touche un autre contrôle ?
Comment savoir si ya collision entre les deux contrôle ? Smile
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1987
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: collision entre 2 controls

Message par AdminPVB le Lun 8 Juin - 22:04

Bonjour,
j'ai trouvé une piste pour Beastsouls et toi Dayvid86:
voici le code:
il y a une astuce
la première utiliser un timer pour contrôler en permanence le positionnement des objets
le deuxième c'est une fonction déjà toute faite
voici un exemple de code:
Code:
Public Class Form1
   Dim mouvementstop As Boolean = True
 
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        If Label2.Bounds.IntersectsWith(Label1.Bounds) Then
            mouvementstop = False
        End If
    End Sub
    Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If mouvementstop = True Then
            If e.KeyCode = Keys.Right Then Label2.Left += 3
            If e.KeyCode = Keys.Left Then Label2.Left -= 3
            If e.KeyCode = Keys.Up Then Label2.Top -= 3
            If e.KeyCode = Keys.Down Then Label2.Top += 3
        End If
    End Sub
    Private Sub Form1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
        If mouvementstop = True Then
            If e.KeyCode = Keys.Right Then Label2.Left += 3
            If e.KeyCode = Keys.Left Then Label2.Left -= 3
            If e.KeyCode = Keys.Up Then Label2.Top -= 3
            If e.KeyCode = Keys.Down Then Label2.Top += 3
        End If
    End Sub
End Class 

ceci est valable pour les PictureBox également.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study

avatar
Dayvid86

Localisation : 86000 (Poitiers)
Messages : 48
Date d'inscription : 03/06/2015
Age : 32

Résolu Re: collision entre 2 controls

Message par Dayvid86 le Lun 8 Juin - 22:47

Bonsoir,

Excellent travail Very Happy
Ceci fonctionne super bien, vraiment bon travail alors merci beaucoup Razz

Je ferais un exemple que je mettrais sur mon site en
te citent bien sur si tu est d'accord Wink

++
avatar
AdminPVB
Admin
Admin

Localisation : France Nord 59
Messages : 1987
Date d'inscription : 24/05/2013
Age : 42

Résolu Re: collision entre 2 controls

Message par AdminPVB le Mar 9 Juin - 5:15

Bonjour,
je n'y voit aucun problème à partir du moment ou tu mets un lien de ton site vers ce sujet.
A+


_________________
Avatar


Bienvenue sur

Dans votre message d'origine cliquer sur le bouton

Tout en bas sur Modifier le titre du sujet cliquer sur le bouton : Résolu !!!
Changer l’icône du sujet par le bouton

Tout simplement.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Celui qui croit tout connaitre, ne connait sans doute pas grand chose,chacun apporte son savoir, mais on a tous tout à apprendre ....  

study


Contenu sponsorisé

Résolu Re: collision entre 2 controls

Message par Contenu sponsorisé


    La date/heure actuelle est Ven 20 Avr - 8:34