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

Windows Forms Discussion :

[VB.net 2005] DrawRectangle


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut [VB.net 2005] DrawRectangle
    Bonjour,
    Je vous soumet aujourd hui encore en cette belle matinée un nouveau problème de débutant que je suis.

    J'essaie de dessiner un rectangle via code (y a un moyen de dessiner un rectangle vide, donc transparent au milieu, via le mode design ?)

    Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Imports System.Drawing
    ...
    PrivateSub frm_dossier_Shown(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Shown
    Dim g As Graphics
    g = Me.CreateGraphics
    g.DrawRectangle(New Pen(Color.Black), 5, 5, 200, 200)
    EndSub
    
    et une erreur il doit y avoir étant donné que mon rectangle ne s'affiche pas

    Ai-je commis une faute grave ???

    Merci d'avance pour votre aide

  2. #2
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    - surcharge le paint de ta form
    - dans les paramètres, tu auras un e
    - prends le e.graphics pour dessiner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    PrivateSub Form1_Paint(ByVal sender AsObject, ByVal e As System.Windows.Forms.PaintEventArgs) HandlesMyBase.Paint
    e.Graphics.DrawRectangle (...) 
    EndSub
    

  3. #3
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    Ok ça marche

    merci bien pour ton aide.

    Autre question, est-ce possible de dessiner un rectangle au premier plan ??? (donc au dessus des autres controles)

  4. #4
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    oui c'est possible.
    Le plus simple est de faire un control perso qui affiche ton rectangle

  5. #5
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    mais je pourrais pas cliquer a travers ?

  6. #6
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    J'ai essayer de commencer une fonction qui afficherais 4 lignes (haut, bas, gauche, droite) pour que je puisse cliquer à travers :
    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
    PublicSub encadrer(ByVal ctr_left AsInteger, ByVal ctr_top AsInteger, ByVal ctr_width AsInteger, ByVal ctr_height AsInteger)
    Dim haut AsNew PictureBox
    Dim trait As Graphics
    Dim haut_gauche AsNew Point(ctr_left, ctr_top)
    Dim haut_droite AsNew Point(ctr_left + ctr_width, ctr_top)
    haut.Left = ctr_left
    haut.Top = ctr_top
    haut.Width = ctr_width
    haut.Height = 1
    trait = haut.CreateGraphics
    trait.DrawLine(New Pen(Color.Black), haut_gauche, haut_droite)
    haut.BringToFront()
    EndSub
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PrivateSub frm_dossier_Paint(ByVal sender AsObject, ByVal e As System.Windows.Forms.PaintEventArgs) HandlesMe.Paint
    encadrer(Me.lst_sexe.Left - 1, Me.lst_sexe.Top - 1, Me.lst_sexe.Width + 1, Me.lst_sexe.Height + 1)
    EndSub
    
    mais cela ne me donne rien, une idée pourquoi ???

    merci pour votre aide

  7. #7
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Par défaut
    je pense que si tu dessines ton rectangle dans un controle (picturebox?) qui se trouve en premier plan, ca devrait marcher

Discussions similaires

  1. DX 9 et visual.net 2005 ?
    Par ilimo dans le forum DirectX
    Réponses: 1
    Dernier message: 27/07/2004, 10h55

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