Copie picturebox

mJuJu Messages postés 56 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 27 mai 2014 - 9 janv. 2007 à 14:31
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 - 10 janv. 2007 à 12:31
Bonjour

Comment faire pour copier une picture box avec tous ses contrôles (picture box, images, labels, Richtextbox et boutons) d'une form à une autre?

13 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 janv. 2007 à 14:46
A quel stade (tu ne le précises pas!) ?
Celui du développement (design time) ou dynamiquement (runtime) ?
0
mJuJu Messages postés 56 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 27 mai 2014
9 janv. 2007 à 14:51
Exact. J'ai omis de dire que je voulais faire cette copie PENDANT LE RUNTIME.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 janv. 2007 à 15:09
Tu ne peux le faire comme tu le ferais au sein de la même form...
Il te faudarit donc  ;
1) créer dynamiquement une picturebox picture1 dans ta Form2
2) lui donner les dimentions de la picturebox de picture1 de ta Form1
3) pour chaque contrôle de la picturebox picture1 de ta form1
- créer dynamiquement un contrôle de même type et lui donner toutes les propriétés du contrôle correspondant de ta picture1 de ta form1 et lui donner comme container la picture1 de ta Form2
0
mJuJu Messages postés 56 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 27 mai 2014
9 janv. 2007 à 15:56
C'est une solution et j'y ai déjà pensé. C'est un peu lourd mais ça marche. L'idée étant de créer un aperçu, j'ai recherché une solution plus simple. SUR UNE MEME FORM, j'ai créé une deuxième picturebox éventuellement de taille différente, et en utilisant l'API stretchblt, je suis arrivé à copier tous les contrôles de la 1ère picturebox dans la 2ème. Quand je veux faire ça sur une autre Form, ça ne marche plus. J'ai vérifié les propriétés autoredraw, j'ai fait des refresh, rien n'y fait. Peut-être y a-t-il un problème avec les pointeurs Hdc.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Djedj Messages postés 17 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 6 mai 2007
9 janv. 2007 à 16:22
Attention aux API ***Blt : les Width et Height passés en paramètres sont en pixels! Si tu utilises les propriétés ScaleWidth et ScaleHeight de tes picturebox ou form comme valeurs, vérifie que leurs propriétés ScaleMode sont bien sur 3 - Pixel...
0
mJuJu Messages postés 56 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 27 mai 2014
9 janv. 2007 à 17:11
Tout est en pixels.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 janv. 2007 à 18:31
1) Tu ne peux faire une création dynamique de type "indexé" que sur la même Form (je te l'ai dit)
2) ta copie de picturebox ne marcheras que si :
a) tu as bien fixé sa propriété aytoredraw = True
b) tu fais suivre l'utilisation de ta strechBlt par un
Picture.Picture = Picture1.Image
avant de dire que :
Form2.Picture1.Picture  = Picture1.Picture
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 janv. 2007 à 18:35
Et n'aoublie pas, dans ta Form2, de mettre également la propriété Autoredraw de la picturebix qui s"y trouve à True elle aussi (sinon l'image disparaitra de la vue au changement de Form)
0
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
9 janv. 2007 à 19:02
Hello,

eh les gars ! on fait de l'objet là !!
Rien de plus simple que de creer une nouvelle instance du form1 et de l'afficher :

dim form2 = new form1
form1.showDialog()
...

Non ??

Jcbé[^]
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 janv. 2007 à 21:45
Excellente idée, TMONOD...

Chez moi, il me faut écrire :

Private Sub Command1_Click()
    Set form2 = New Form1
    form2.Show
End Sub

Seul problème : voilà ce que veut mJuJju :

Comment faire pour copier une picture box avec tous ses contrôles (picture box, images, labels, Richtextbox et boutons) d'une form à une autre?

et pas toute la Form
0
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
10 janv. 2007 à 00:07
Une picturebox n'a pas de contrôles ?

Jcbé[^]
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
10 janv. 2007 à 00:13
Avant d'aller dormir, TMONOD, juste un rappel :

Une pictureBox (comme un Frame ou une Form), peut être utilisée comme container de contrôles .... et est souvent utilisée à cette fin.
0
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
10 janv. 2007 à 12:31
Ah oui, c'est VB6 je me fais avoir à chaque fois !!!
(Non pas que l'on ne puisse pas faire la même chose avec .Net mais c'est complétement inutile).
Jcbé[^]
0
Rejoignez-nous