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
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
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é
J'ai réussi mais pas à l'aide de e...
Si cette solution n'est pas la meilleur.. m'en faire part...
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
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
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..
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")
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+
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
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 ?
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..
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 ...
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
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
le private sub new sert à interdire de faire dim f as new 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
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)
ici on suppose que Form1 possède un Public Sub DeleteClientFromListbox(IdClient as Long) (qui cherche dans le listbox le client et le retire)
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager