Impossible d'afficher le rectangle à partir du button.click
fpatrice2005
Messages postés4Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention 2 mai 2008
-
1 mai 2008 à 19:02
Profil bloqué -
2 mai 2008 à 21:08
Je suis toujours à la recherche d'une solution à mon problème.
J'ai réalisé ce petit programme en VB2005 mais il n'affiche rien
POURQUOI ????????
Merci pour votre aide, je bloque depuis plusieurs heures
Patrice
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Trace_Zone
(Me.CreateGraphics)
End
Sub
Sub
Trace_Zone(
ByVal
e
As
System.Drawing.Graphics)
Dim rec As Rectangle = New System.Drawing.Rectangle
Dim
myPen2
As
Pen =
New
Pen(Color.Red, 2.0F)
myPen2.DashStyle = Drawing2D.DashStyle.Solid
Dim x1 AsInteger, y1 As
Une piste car le problème s'est posé pour moi avec les Picturebox
Tu as l'objet Me qui est ta feuille
Losque tu fais Trace_Zone(Me.CreateGraphics) tu demandes le tracé de ton rectangle dans l'interface graphique de Me et non dans Me lui-même.
La suite est un code VB net que j'utilise pour unr Picturebox
-Dim MyBitmap As Bitmap = New Bitmap(Picvolume.Width, Picvolume.Height)
-g = Graphics.FromImage(MyBitmap)
-Affichclusterslibres()
-Graphics.FromImage(MyBitmap)
-Picvolume.Image = MyBitmap
-g.Dispose()
chaque commentaire correspond à la ligne de code de même position
-Création d'un Bitmap pour le controle Picturebox ( son nom est Picvolume pour le Picturebox)
-g est la création de l'interface graphique associé à ce Bitmap
-Affichclusterslibres est une Sub où différentes opérations graphiques sonf faites sur l'interface graphique g
-Création de l'image Bitmap finale
-On met l'image dans la Picturebox
-On libère l'interface graphique
On voit très bien que l'on ne travaille pas sur le contrôle lui-même mais sur un interface qui lui est associé. Une form étant elle aussi un contrôle le même raisonnement devrait s'y appliquer
Il te manquerait ces 2 étapes
-Création de l'image Bitmap finale
-On met l'image dans la Picturebox
Je vais tester avec ton code pour voir si ma piste est bonne
Ma piste donnée lors de mon précédent post ne donne rien
Par contre le code suivant fonctionne nickel et affiche bien un petit carré rouge en haut à gauche de la feuille
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Trace_Zone(Me.CreateGraphics)
End Sub
Sub Trace_Zone(ByVal e As System.Drawing.Graphics)
Dim myPen2 As Pen = New Pen(Color.Red, 2.0F)
myPen2.DashStyle = Drawing2D.DashStyle.Solid
Dim rec As Rectangle = New System.Drawing.Rectangle
rec.Width = 10
rec.X = 10
rec.Y = 10
rec.Height = 10
e.DrawRectangle(myPen2, rec)
End Sub
fpatrice2005
Messages postés4Date d'inscriptionjeudi 10 avril 2008StatutMembreDernière intervention 2 mai 2008 2 mai 2008 à 09:01
Merci énormément pour ces explications.
Effectivement en testant le petit programme, le carré rouge s'affiche (je n'avais pas fait le test seul), en fait cette fonction s'intègre dans un programme plus complexe et je viens de m'apercevoir que la présence d'un PictureBoxe mis en transparence est la cause de mes soucis.
Encore un grand merci à Galain.
Je débute, mais la correction de mes erreurs sont un apprentissage pour moi.
Content que cela fonctionne pour toi
Cela est vrai que la correction de ses propres erreurs est un excellent apprentissage et dans beaucoup de domaines.
Si cela a résolu ton problème pense à valider la réponse