IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment détecter un clic droit ?


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Comment détecter un clic droit ?
    Alors voilà tout est dans le titre... j'aimerais détecter un clic droit de la souris sur un bouton.. pour un projet de démineur faire le petit drapeau!

    Merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    dans les evenements de clic de souris (click, mousedown ...) tu peux le savoir
    dans e tu une propriété qui te dis quel bouton est enfoncé

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    J'ai réussi mais pas à l'aide de e...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    (dans une autre porition du code j'ai un addhandler)
    AddHandler cases.MouseDown, AddressOf DetectMine
     
    Private Sub DetectMine(ByVal sender As System.Object, ByVal e As System.EventArgs)
            If MouseButtons = Windows.Forms.MouseButtons.Right Then
                MsgBox(sender.name)
                sender.BackgroundImage = New Bitmap("mine.bmp")
            End If
     
        End Sub
    Si cette solution n'est pas la meilleur.. m'en faire part...



    Mais j'ai une nouvelle question. Je dois afficher la mine lorsqu'elle est clické et mon drapeau sur le clic droit. J'avais réussis à le faire à l'aide de la commande suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                sender.BackgroundImage = New Bitmap("mine.bmp")
     
    ou
     
                sender.BackgroundImage = Image.FromFile("mine.bmp")
    J'ai mis mine.bmp dans le dossier bin\Debug et tout fonctionnait... mais tout d'un coup ça ne marche plus et je n'ai rien touché qui est rapport à cela à ma connaisance..

    Ma question est : quelle est la meilleur façon d'aller chercher une image ? Je crois qu'on peut la rajouter à la solution ? où est-ce mieux d'y aller en rajoutant quelque chose dans le genre de "current dir" dans le nom de l'objet ?

    Aussi, quelle est la directory par défaut où mon code va chercher mine.bmp ?

    Merci encore 1000 fois a+

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    dans l'explorateur de solution tu as un fichier de ressource pour l'appli
    glisser les images dedans

    ensuite les images se trouvent dans les resources, et donc dans l'exe carrément

    puis
    backgroundimage = my.resources.mine

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je ne sais pas ce que tu veux dire par "ressource" mais, j'ai glissé mes images dans mon projet... c'est à dire avec "Myproject" "Form1" "Form2" et "module1.vb"...

    Cependant, my.resources.mine ne fonctionne pas et je n'arrive toujours pas à l'afficher.




    Aussi, j'essai de transféré les valeurs d'une variable d'un Form à un autre.. J'ai déclaré mes variables comme étant public dans un module(Est-ce la bonne façon de faire ?). La variable existe toujours dans le second form mais ne conserve pas sa valeur. Comment je fais ?

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Si j'le demande c'est que je n'ai pas réussi à le trouver au travers des 1000 pages de ce tutoriel, la FAQ et sur internet en général..

    merci pareil..

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    ca se devine pas, les 3/4 des gens ici postent sans chercher ...


    dans l'explorateur de solution, tu clic sur le 2eme icone en haut qui sert à afficher les "fichiers" cachés

    ensuite tu développes "my project"

    tu double clic sur "resource.Resx"

    et tu glisses tes images là dedans

    les fichiers images sont transformés en system.Drawing.bitmap (utilisable donc directement dans .net)

    les fichiers .txt sont transformés en string

    les autres fichiers sont transformés en données binaire, donc il reste possible de recréer le fichier par code

    si tu glisses des fichiers directement sur "windowapplication1" (ou le nom de ton projet) les fichiers seront inclus dans l'exe et utilisables comme s'ils étaient à coté de l'exe

    dans les ressources on peut aussi créer des string, et quelques autres trucs ...

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    C'est bon je comprends... je sais à quel point la plupars du monde poste vite sur un forum...

    Est-ce que tout ce qui est dans la ressource est inclus dans le .exe ? Ce qui veut dire que peu importe où je mets mes images elles seront compilé avec le reste du code ?

    Parce que je n'ai pas vraiment compris la différence que lorsque que les images sont directement rajouté dans le projet.. Mais ça a fonctionné

    Je cherche toujours à transférer l'information d'une variable d'un form à l'autre

    Merci beaucoup à toi.. tu sembles être le seul à répondre au question sur le forum... bon courage

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    des fichiers directement sont intégrés dans l'exe
    les resources c'est au choix, sur chaque resource tu une peux choisir parmis plusieurs choix, mais j'ai pas bien compris la nuances ... je laisse pas défaut
    quand on mets dans les resources, le fichier en plus d'etre intégré "binairement" est accessible depuis une variable
    en fait visual studio génère du code pour y accéder sans se compliquer la vie

    pour transférer une variable d'un form à un autre (question qui revient souvent) il faut déjà prendre en compte le fait qu'une form est une classe
    à partir d'une classe on peut obtenir autant d'instances qu'on veut
    par exemple on peut imaginer Form1 avec un listbox de clients, sur un bouton on ouvre une fenetre sur le détail client
    Form2 étant le détail client on peut avoir 3x à l'écran Form2 avec 3 clients différents

    plusieurs possibilités pour passer des infos d'une form à l'autre

    si l'info est nécessaire juste à la création (ce qui irait parfaitement dans mon exemple, on ouvre une Form2 en lui disant affiche moi le client 28)
    dans ce cas il faut un new paramétré sur Form2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class Form2
     
      Private Sub New
        InitializeComponent()
      End Sub
     
      Public Sub New (IdClient as Long)
        InitializeComponent()
        ' récupération du client
      End Sub
     
    End Class
    le private sub new sert à interdire de faire dim f as new Form2
    par contre dim f as new Form2(28) est autorisé (puis f.show pour l'afficher)
    une form a par défaut un public sub new sans paramètre
    le private sub new n'est pas obligatoire mais l'écrire fait que le public sub new sans paramètre n'existe plus
    c'est une sécurité du code qui permet d'etre sur qu'on va toujours appeler la fenetre en passant le paramètre



    autre cas, si Form2 doit piocher des infos sur Form1 à plusieurs moments, ou pas à l'ouverture
    il faut passer une référence de l'instance de Form1 à Form2, et que les membres de Form1 auxquels on veut accéder soit accessibles (portée des membres)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Public Class Form2
     
      Private Sub New
        InitializeComponent()
      End Sub
     
      Private _Form1 as Form1
     
      Public Sub New (f as Form1)
        InitializeComponent()
        _Form1 = Form1
      End Sub
     
      Public Sub ClickSurBoutonSupprimerClient (sender, e)  Handles btnsuppr.click
         'requete qui delete le client dans la base
         _Form1.DeleteClientFromListbox(NumClient)
      End Sub
     
    End Class
    ici on suppose que Form1 possède un Public Sub DeleteClientFromListbox(IdClient as Long) (qui cherche dans le listbox le client et le retire)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/01/2014, 09h25
  2. Comment détecter le clic du bouton central dans un Table LWUIT ?
    Par andrianiaina dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 20/05/2011, 17h39
  3. Détecter le clic droit sous Opera 9
    Par Shargat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/05/2009, 21h59
  4. comment éviter un clic droit ?
    Par bourrassa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/06/2008, 16h39
  5. Réponses: 8
    Dernier message: 14/03/2005, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo