Communauté Fb
Follow us on twitter
Les vidéos du site
Le site complément
Dépannage de votre PC

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 does not speak french,you are able to translate the whole topics with the flags just below of 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 5157 messages dans 620 sujets

Nous avons 461 membres enregistrés

L'utilisateur enregistré le plus récent est RACCH

Recherche dans les forums

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


Derniers sujets

» EFFACER LIGNE SUR BASE
par jmcr Hier à 22:54

» Menustrip Vbnet Visual Studio
par Berly Dim 17 Sep - 13:27

» Insertion commentaire dans cellules
par Berly Ven 15 Sep - 20:21

» Chercher un texte dans un commentaire de cellule
par Berly Ven 15 Sep - 20:10

» ameliorer informatique
par jmcr Jeu 14 Sep - 23:19

» question pour le forum
par AdminPVB Jeu 14 Sep - 16:59

» total d'une cellule
par jmcr Lun 11 Sep - 14:51

» CODE ET combobox date enregistrement
par jmcr Lun 11 Sep - 14:49

» compter le nombre de lignes dans un listbox
par jmcr Dim 10 Sep - 11:24

» dossier pdf
par jmcr Mer 6 Sep - 21:40

» suppression d'un fichier txt en cours d'utilisation
par La boc Mar 5 Sep - 20:12

» Boucle sur DataGridView
par AdminPVB Ven 1 Sep - 20:50

» RECHERCHE COMPTABILISER NOMBRE carte
par grisan29 Mar 29 Aoû - 17:49

» ancien temps mis au moderne
par Berly Mar 29 Aoû - 17:18

» Liers des tables dans une BDD
par La boc Mar 29 Aoû - 11:01

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 

Septembre 2017

LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 

Calendrier Calendrier

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 ]
Boucle sur DataGridView

Jeu 31 Aoû - 8:25 par La boc

Bonjour as tous,

J'ai laissé tomber la BDD avec les tables pour mes factures, parce-que j'ai plus de 850 entrées à gérer et ça va être un peu trop lourd.

Je suis donc partis sur des DataGridView pour emplir mes factures, et au lieu d'enregistrer dans une BDD j'enregistre dans un fichier txt et je recharge les fchier en fonction du nom du client.

Jusque là pas de problème.

Je voudrais …

[ Lecture complète ]
Liers des tables dans une BDD

Lun 28 Aoû - 15:08 par La boc

Bonjour à tous,

Je sèche sur un problème visiblement simple, mais impossible de faire quelque chose qui fonctionne!

Voilà dans une base de données access j'ai deux tables, une table client et une table facture, je souhaiterais lier les ID des deux tables pour que quand je choisis un id client j'ai sa facture dans la table facture.

Je fais une application VBNET avec Visulal studio comunity …

[ Lecture complète ]
Application

Lun 15 Mai - 19:02 par Berly

Bonjour le forum

Souci dans une nouvelle application.

Total des énoncés =3

Ecriture de l'énoncé 1 dans un Textbox.

Je voulais créer plusieurs problèmes différents.
Dons pour cela j'ai créé 3 sub  Laughing.

Lors de l'événement clic sur le bouton créé pour visualiser le premier énoncé celui ci s'affiche correctement Very Happy .
Suite a cela l'utilisateur donne le résultat ,et un Msgbox …

[ Lecture complète ]
Obtenir le volume sonore enregistré par le micro

Sam 10 Sep - 13:29 par Nayl.VBcoder

Bonjour,

Je cherche à avoir le volume sonore de la pièce en temps réel, et l'afficher dans une ProgressBar.
Je ne vois pas comme plus décrire mon problème.

Merci de vos réponses.

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 ]
Utilisation d'un objet son (Wav)

Jeu 18 Mai - 21:48 par Berly

Bonjour le forum 

Voila , je voudrais savoir si on peut créer un tableau d'objets son.
Difficile de trouver ce genre d'information .

Les sons  sont intégrés en ressources programme.

Merci  Very Happy
Code:
[Module Module1
    Dim son1 = New System.Media.SoundPlayer(My.Resources._0283)
    Dim son2 = New System.Media.SoundPlayer(My.Resources._0863)
    Dim son3 = New …


[ Lecture complète ]
Ressource Vb.net

Ven 5 Mai - 22:29 par Berly

Bonsoir le forum

Toujours a la recherche de ressources ,je partage avec vous une nouvelle ressource  Wink.

Bonne lecture .

https://vbnetpourtous.wordpress.com/2012/12/13/les-variables/


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 : 1842
Date d'inscription : 24/05/2013
Age : 41

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 : 1842
Date d'inscription : 24/05/2013
Age : 41

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 : 1842
Date d'inscription : 24/05/2013
Age : 41

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 : 1842
Date d'inscription : 24/05/2013
Age : 41

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 : 1842
Date d'inscription : 24/05/2013
Age : 41

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 : 1842
Date d'inscription : 24/05/2013
Age : 41

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 Mer 20 Sep - 4:08