Impossible d'afficher le rectangle à partir du button.click

Signaler
Messages postés
4
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008
-
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
-
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


Integer

      rec.Width = 10
      rec.X = 10
      rec.Y = 10
      rec.Height = 10
      e.DrawRectangle(myPen2, rec)
EndSub   

4 réponses

Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
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

GRENIER Alain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
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

End Class

GRENIER Alain
Messages postés
4
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008

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.

A+ Patrice

Débutant
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut fpatrice2005

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

A+ et bonne prog

GRENIER Alain