Interaction sans la souris sur un boutton [VB.net]
Résolu/Fermé
Utilisateur anonyme
-
30 mars 2016 à 14:10
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 10 avril 2016 à 19:08
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 10 avril 2016 à 19:08
A voir également:
- Interaction sans la souris sur un boutton [VB.net]
- Comment activer le pavé tactile sans souris - Guide
- Autoclick souris - Télécharger - Divers Utilitaires
- Comment faire apparaître le curseur sans souris - Guide
- Souris ordinateur - Guide
- Souris inversée - Guide
11 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
30 mars 2016 à 14:52
30 mars 2016 à 14:52
Bonjour,
Voir la méthode performclick:
https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.button.performclick?redirectedfrom=MSDN&view=netframework-4.8#code-snippet-2
Voir la méthode performclick:
https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.button.performclick?redirectedfrom=MSDN&view=netframework-4.8#code-snippet-2
Utilisateur anonyme
30 mars 2016 à 17:43
30 mars 2016 à 17:43
Merci d'avoir répondu si vite, mais se n'est pas sa que je cherche (désoler)
Effet il faudrait que quand la croix (pictureboxe1) survole n'importe quelle partie du bouton, et que l'on click sur la zone de déplacement tactile
ici entourée en jaune :
http://static.commentcamarche.net/www.commentcamarche.net/pictures/yUTSAXi12ZGwXMF3MTKtq2S99z214ixSViCyw6DqkEd9254IQPPVNV3qtIdZJugc-question-image-ccm-1223.png
le bouton se "sélectionne" comme si on cliquais avec la souris sur un bouton, mais là... sans souris, juste avec la croix
Merci
Cordialement VANAUR
Effet il faudrait que quand la croix (pictureboxe1) survole n'importe quelle partie du bouton, et que l'on click sur la zone de déplacement tactile
ici entourée en jaune :
http://static.commentcamarche.net/www.commentcamarche.net/pictures/yUTSAXi12ZGwXMF3MTKtq2S99z214ixSViCyw6DqkEd9254IQPPVNV3qtIdZJugc-question-image-ccm-1223.png
le bouton se "sélectionne" comme si on cliquais avec la souris sur un bouton, mais là... sans souris, juste avec la croix
Merci
Cordialement VANAUR
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
31 mars 2016 à 09:42
31 mars 2016 à 09:42
Je ne pense pas que cela soit possible avec une PictureBox. Par contre on peut changer le curseur en croix.
Voici un petit exemple:
Mettre en haut du Form un panel et un button:
Panel1 et Button1
En bas du Form un panel et un button:
Panel2 et Button2
Il suffit de survoler le Button1 pour qu'il change de couleur et ensuite de cliquer dans le Panel2 pour avoir le message.
Voici le code:
Là tu vois que l’événement Performclick est nécessaire pour activer un button à distance!
Voici un petit exemple:
Mettre en haut du Form un panel et un button:
Panel1 et Button1
En bas du Form un panel et un button:
Panel2 et Button2
Il suffit de survoler le Button1 pour qu'il change de couleur et ensuite de cliquer dans le Panel2 pour avoir le message.
Voici le code:
Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Button2.PerformClick() Button1.FlatStyle = FlatStyle.System Button1.FlatAppearance.BorderColor = Color.White End Sub Private Sub Button1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove Button1.FlatStyle = FlatStyle.Flat Button1.FlatAppearance.BorderColor = Color.Blue End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click MsgBox("Hello") End Sub Private Sub Panel1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove Panel1.Cursor = Cursors.Cross End Sub Private Sub Panel2_Click(sender As Object, e As System.EventArgs) Handles Panel2.Click If Button1.FlatAppearance.BorderColor = Color.Blue Then Button1.PerformClick() End If End Sub End Class
Là tu vois que l’événement Performclick est nécessaire pour activer un button à distance!
Utilisateur anonyme
7 avril 2016 à 09:17
7 avril 2016 à 09:17
Merci beaucoup, sa se rapproche de la raiponce que j'attendais, je pense que sa fonctionne ! Merci, je vais faire avec et modifier un peu le code pour qu'il convienne mieux.
Merci
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
7 avril 2016 à 10:01
7 avril 2016 à 10:01
Bonjour,
Je pense que c'est faisable.
C'est juste un peu d'arithmétique au final non?
Au départ, tu disposes de :
1- la position (Left et Top) du bouton dans le panel1
2- la taille (Width et Height) du bouton
3- la position (Left et Top) de la picturebox dans le panel1
4- la taille (Width et Height) de la picturebox
Il "suffit" donc de "surveiller" le "déplacement" de la picturebox, et si elle survole le bouton, changer l'apparence de celui-ci.
Mais je me trompe surement.
Je pense que c'est faisable.
C'est juste un peu d'arithmétique au final non?
Au départ, tu disposes de :
1- la position (Left et Top) du bouton dans le panel1
2- la taille (Width et Height) du bouton
3- la position (Left et Top) de la picturebox dans le panel1
4- la taille (Width et Height) de la picturebox
Il "suffit" donc de "surveiller" le "déplacement" de la picturebox, et si elle survole le bouton, changer l'apparence de celui-ci.
Private Sub Panel1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove If PictureBox.Left > Bouton.Left And PictureBox.Left < Bouton.Left + Bouton.Width Then If PictureBox.Top > Bouton.Top And PictureBox.Top < Bouton.Top + Bouton.Eight Then 'etc... Il faut prendre en compte aussi la hauteur et la largeur de la picturebox '... Then Button1.FlatAppearance.BorderColor = Color.Blue Else Button1.FlatAppearance.BorderColor = Color.White
Mais je me trompe surement.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 7/04/2016 à 14:48
Modifié par cs_Le Pivert le 7/04/2016 à 14:48
Bonjour pijaku,
Tu as eu la bonne approche, la seule rectification, il faut mettre ton code dans l'evenement MouseMove de la Picturebox comme ceci:
C'est quand même moins précis qu'avec la souris!
@+ Le Pivert
Tu as eu la bonne approche, la seule rectification, il faut mettre ton code dans l'evenement MouseMove de la Picturebox comme ceci:
Public Class Form1 Dim x, y As Integer Private Sub PictureBox1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown If e.Button = Windows.Forms.MouseButtons.Left Then x = e.X y = e.Y End If End Sub Private Sub PictureBox1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove If e.Button = Windows.Forms.MouseButtons.Left Then PictureBox1.Left += (e.X - x) PictureBox1.Top += (e.Y - y) PictureBox1.Cursor = Cursors.Hand 'curseur main If PictureBox1.Left >= Button1.Left And PictureBox1.Left <= Button1.Left + Button1.Width Then Button1.FlatStyle = FlatStyle.Flat Button1.FlatAppearance.BorderColor = Color.Blue End If If PictureBox1.Top >= Button1.Top And PictureBox1.Top <= Button1.Top + Button1.Height Then Button1.FlatStyle = FlatStyle.Flat Button1.FlatAppearance.BorderColor = Color.Blue End If End If End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Button2.PerformClick() Button1.FlatStyle = FlatStyle.System Button1.FlatAppearance.BorderColor = Color.White End Sub Private Sub Panel2_Click(sender As Object, e As System.EventArgs) Handles Panel2.Click If Button1.FlatAppearance.BorderColor = Color.Blue Then Button1.PerformClick() End If End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click MsgBox("Hello") End Sub End Class
C'est quand même moins précis qu'avec la souris!
@+ Le Pivert
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
7 avril 2016 à 14:57
7 avril 2016 à 14:57
Oui, mais...
Attention, tu ne tiens pas compte de la hauteur ni de la largeur du picturebox.
C'est ce que j'indiquais plus haut.
Devient :
De même
devient :
Ce sera déjà beaucoup plus précis!
Attention, tu ne tiens pas compte de la hauteur ni de la largeur du picturebox.
C'est ce que j'indiquais plus haut.
If PictureBox1.Left >= Button1.Left
Devient :
If PictureBox1.Left + PictureBox1.Width >= Button1.Left
De même
If PictureBox1.Top >= Button1.Top
devient :
If PictureBox1.Top + PictureBox1.Height >= Button1.Top
Ce sera déjà beaucoup plus précis!
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
7 avril 2016 à 15:17
7 avril 2016 à 15:17
Je suis d'accord avec toi, mais j'ai fait mes essais en partant du point inférieur droit avec ma Picturebox. Donc les dimensions de la Picturebox n'entrent pas en ligne de compte, mon bouton étant en haut à gauche. Le changement s'effectue bien avant le survol du bouton.
Enfin je pense qu'avec ces conseils, il choisira l'option qui l'arrangera.
@+
Enfin je pense qu'avec ces conseils, il choisira l'option qui l'arrangera.
@+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
7 avril 2016 à 15:17
7 avril 2016 à 15:17
Tout à fait.
A+
A+
Utilisateur anonyme
7 avril 2016 à 16:27
7 avril 2016 à 16:27
Exactement !
Merci, c'est encore mieux maintenant, même si il y a des problems de présisions.
Merci beaucoup
Merci, c'est encore mieux maintenant, même si il y a des problems de présisions.
Merci beaucoup
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
Modifié par pijaku le 8/04/2016 à 08:30
Modifié par pijaku le 8/04/2016 à 08:30
Bonjour,
Pourquoi utiliser le PictureBox.MouseMove???
La souris (le doigt) ne sort jamais du panel2 (à ce propos, dans mon essai de code plus haut, me suis gourré, c'est Panel2.MouseMove).
C'est peut-être pour ça que vous perdez en précision.
Je vous ai fait un exemple vite fait en VBA, n'étant pas vbnettiste.
Sur un UserForm :
- 1 Frame nommé Frame1 (en haut de l'USF) contenant :
===> 1 commandbutton CommandButton1 = gris
===> 1 label Label1 = rouge
- 1 Frame nommé Frame2 (en bas de l'USF)
Tout se commande depuis le Frame2. Il faut cliquer gauche, maintenir le bouton enfoncé et bouger la souris (et oui, rien de tactile chez moi...)
Le bouton passe au vert au survol.
Un doubleclic dans le Frame2 envoie la procédure CommandButton_Click si le label est situé sur le bouton...
Aucun problème de précision!
Ce code :
Le fichier exemple
N'a pas été traité dans ce fichier la sortie du frame2 en maintenant le clic...
Par contre, la fonction Intersection peut vous être utile...
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Pourquoi utiliser le PictureBox.MouseMove???
La souris (le doigt) ne sort jamais du panel2 (à ce propos, dans mon essai de code plus haut, me suis gourré, c'est Panel2.MouseMove).
C'est peut-être pour ça que vous perdez en précision.
Je vous ai fait un exemple vite fait en VBA, n'étant pas vbnettiste.
Sur un UserForm :
- 1 Frame nommé Frame1 (en haut de l'USF) contenant :
===> 1 commandbutton CommandButton1 = gris
===> 1 label Label1 = rouge
- 1 Frame nommé Frame2 (en bas de l'USF)
Tout se commande depuis le Frame2. Il faut cliquer gauche, maintenir le bouton enfoncé et bouger la souris (et oui, rien de tactile chez moi...)
Le bouton passe au vert au survol.
Un doubleclic dans le Frame2 envoie la procédure CommandButton_Click si le label est situé sur le bouton...
Aucun problème de précision!
Ce code :
Option Explicit Private Start As Boolean Private SourisX As Double Private SourisY As Double Private Clic_Possible As Boolean Private Sub UserForm_Initialize() Label1.ZOrder End Sub Private Sub Frame2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 Then Start = True SourisX = X SourisY = Y End Sub Private Sub Frame2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Not Start Then Exit Sub With Me.Label1 .Move .Left + X - SourisX, .Top + Y - SourisY If Intersection(Label1, CommandButton1) = True Then CommandButton1.BackColor = &HC000& Clic_Possible = True Else CommandButton1.BackColor = &H8000000F Clic_Possible = False End If DoEvents SourisX = X SourisY = Y End With End Sub Private Sub Frame2_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Clic_Possible Then CallByName UserForm1, "CommandButton1_Click", VbMethod End Sub Private Sub Frame2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 Then Start = False End Sub '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 'Cette Sub doit être public pour être appelée par la fonction CallByName Public Sub CommandButton1_Click() MsgBox "Gagné!" End Sub Private Function Intersection(Lab As Control, Butt As Control) As Boolean Dim LL As Double, LT As Double, LW As Double, LH As Double Dim BL As Double, BT As Double, BW As Double, BH As Double Intersection = False LL = Lab.Left: LT = Lab.Top: LW = Lab.Width: LH = Lab.Height BL = Butt.Left: BT = Butt.Top: BW = Butt.Width: BH = Butt.Height If LL + LW > BL And LL < BL + BW And LT + LH > BT And LT < BT + BH Then Intersection = True ElseIf LT + LH > BT And LT < BT + BH And LL < BL + BW And LL + LW > BL Then Intersection = True ElseIf LT < BT + BH And LT + LH > BT And LL + LW > BL And LL < BL + BW Then Intersection = True ElseIf LT < BT + BH And LT + LH > BT And LL < BL + BW And LL + LW > BL Then Intersection = True Else Intersection = False End If End Function
Le fichier exemple
N'a pas été traité dans ce fichier la sortie du frame2 en maintenant le clic...
Par contre, la fonction Intersection peut vous être utile...
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
8 avril 2016 à 10:35
8 avril 2016 à 10:35
Et voici le code VBA (désolé hein ;-) pas VB.Net) avec empêchement de sortir :
> la souris du frame2
> le label du frame1
Je ne note aucune imprécision. Pourtant VBA doit être moins "puissant" que VB.Net...
> la souris du frame2
> le label du frame1
Je ne note aucune imprécision. Pourtant VBA doit être moins "puissant" que VB.Net...
Option Explicit Private Start As Boolean Private SourisX As Double Private SourisY As Double Private Clic_Possible As Boolean Private Const MARGE_FRM_GAUCHE As Byte = 5 Private Const MARGE_FRM_HAUT As Byte = 10 Private Sub UserForm_Initialize() Label1.ZOrder End Sub Private Sub Frame2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 Then Start = True SourisX = X: SourisY = Y End Sub Private Sub Frame2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 'empêche le déplacement au survol de la souris (sans clic gauche enfoncé) If Not Start Then Exit Sub 'empêche la sortie de la souris du Frame2 If X < 0 Or Y < 0 Then Start = False With Me.Label1 'empêche la sortie du label du Frame1 Select Case Tente_De_Sortir(Frame1, Label1) Case 0: .Move .Left + X - SourisX, .Top + Y - SourisY Case 1: .Move 2, .Top Case 2: .Move .Left, 2 Case -1: .Move .Left - 2, .Top Case -2: .Move .Left, .Top - 2 End Select DoEvents SourisX = X: SourisY = Y End With If Intersection(Label1, CommandButton1) = True Then CommandButton1.BackColor = &HC000&: Clic_Possible = True Else CommandButton1.BackColor = &H8000000F: Clic_Possible = False End If End Sub Private Sub Frame2_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Clic_Possible Then CallByName UserForm1, "CommandButton1_Click", VbMethod End Sub Private Sub Frame2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 Then Start = False End Sub '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 'Cette Sub doit être public pour être appelée par la fonction CallByName Public Sub CommandButton1_Click() MsgBox "Gagné!" End Sub Private Function Intersection(Ctrl_1 As Control, Ctrl_2 As Control) As Boolean Intersection = False If Ctrl_1.Left + Ctrl_1.Width > Ctrl_2.Left And Ctrl_1.Left < Ctrl_2.Left + Ctrl_2.Width And Ctrl_1.Top + Ctrl_1.Height > Ctrl_2.Top And Ctrl_1.Top < Ctrl_2.Top + Ctrl_2.Height Then Intersection = True ElseIf Ctrl_1.Top + Ctrl_1.Height > Ctrl_2.Top And Ctrl_1.Top < Ctrl_2.Top + Ctrl_2.Height And Ctrl_1.Left < Ctrl_2.Left + Ctrl_2.Width And Ctrl_1.Left + Ctrl_1.Width > Ctrl_2.Left Then Intersection = True ElseIf Ctrl_1.Top < Ctrl_2.Top + Ctrl_2.Height And Ctrl_1.Top + Ctrl_1.Height > Ctrl_2.Top And Ctrl_1.Left + Ctrl_1.Width > Ctrl_2.Left And Ctrl_1.Left < Ctrl_2.Left + Ctrl_2.Width Then Intersection = True ElseIf Ctrl_1.Top < Ctrl_2.Top + Ctrl_2.Height And Ctrl_1.Top + Ctrl_1.Height > Ctrl_2.Top And Ctrl_1.Left < Ctrl_2.Left + Ctrl_2.Width And Ctrl_1.Left + Ctrl_1.Width > Ctrl_2.Left Then Intersection = True Else Intersection = False End If End Function Private Function Tente_De_Sortir(Frm As Control, Lbl As Control) As Integer Tente_De_Sortir = 0 Select Case True Case Lbl.Left < 1: Tente_De_Sortir = 1 Case Lbl.Left + Lbl.Width > Frm.Width - MARGE_FRM_GAUCHE: Tente_De_Sortir = -1 Case Lbl.Top < 1: Tente_De_Sortir = 2 Case Lbl.Top + Lbl.Height > Frm.Height - MARGE_FRM_HAUT: Tente_De_Sortir = -2 End Select End Function
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
8 avril 2016 à 11:44
8 avril 2016 à 11:44
Cela fonctionne très bien en vba. Pour remplacer Label1.Move en VB.Net PictureBox1.Move n'existe pas. J'ai cherché déplacer une PictureBox à partir d'un autre controle, je n'ai rien trouvé!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
8 avril 2016 à 11:56
8 avril 2016 à 11:56
Si VB.Net ne dispose pas de la méthode Move pour ces contrôles, mais ou va t'on?
Bah, faut utiliser ses coordonnées... .Left et .Top.
En Fait,
Bah, faut utiliser ses coordonnées... .Left et .Top.
En Fait,
Ctrl.Move Left, Top, Width, Heightn'est qu'une façon plus simple d'écrire :
With Ctrl .Left = 321 .Top = 125 .Width = 30 .Height = 20 End With
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
8 avril 2016 à 12:14
8 avril 2016 à 12:14
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
8 avril 2016 à 12:18
8 avril 2016 à 12:18
Et oui. Tu as trouvé SetBounds
Voilà
Voilà
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
8 avril 2016 à 14:51
8 avril 2016 à 14:51
Bon avec un peu de persévérance, j'ai trouvé en prenant ton code de départ encore plus simple. Tout se fait a partir du panel2, il faut vraiment être au dessus du bouton pour l'activer:
Voilà, je laisse le soin à minotaugames de trouver le code pour empêcher la PictureBox de sortir du panel en faisant référence a ton code.
Si il le désire!
Public Class Form1 Dim x, y As Integer Private Sub Panel2_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel2.MouseMove If e.Button = Windows.Forms.MouseButtons.Left Then PictureBox1.SetBounds(e.X, e.Y, 50, 50) If PictureBox1.Left >= Button1.Left And PictureBox1.Left <= Button1.Left + Button1.Width And PictureBox1.Top >= Button1.Top And PictureBox1.Top <= Button1.Top + Button1.Height Then Button1.FlatStyle = FlatStyle.Flat Button1.FlatAppearance.BorderColor = Color.Blue End If End If End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Button2.PerformClick() Button1.FlatStyle = FlatStyle.System Button1.FlatAppearance.BorderColor = Color.White End Sub Private Sub Panel2_DoubleClick(sender As Object, e As System.EventArgs) Handles Panel2.DoubleClick If Button1.FlatAppearance.BorderColor = Color.Blue Then Button1.PerformClick() End If End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click MsgBox("Hello") End Sub End Class
Voilà, je laisse le soin à minotaugames de trouver le code pour empêcher la PictureBox de sortir du panel en faisant référence a ton code.
Si il le désire!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
8 avril 2016 à 15:24
8 avril 2016 à 15:24
Bon avec un peu de persévérance, j'ai trouvé en prenant ton code de départ encore plus simple. Tout se fait a partir du panel2, il faut vraiment être au dessus du bouton pour l'activer:
En effet. Encore faut-il, avec cet exemple, que la pictureBox soit plus petite que le bouton.
Mais là minotaugames a, de toutes façons, tout ce qu'il lui faut pour avancer.
Merci de cet échange très constructif.
A bientôt.
Franck
En effet. Encore faut-il, avec cet exemple, que la pictureBox soit plus petite que le bouton.
Mais là minotaugames a, de toutes façons, tout ce qu'il lui faut pour avancer.
Merci de cet échange très constructif.
A bientôt.
Franck
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
10 avril 2016 à 19:08
10 avril 2016 à 19:08
Ce post m'a donné l'idée d'un petit programme: Le chat et la souris. C'est tout simple. Merci à toi pijaku pour ton aide.
https://codes-sources.commentcamarche.net/source/101445-le-chat-et-la-souris
https://codes-sources.commentcamarche.net/source/101445-le-chat-et-la-souris