Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 128 fois - Téléchargée 7 fois
#Region "CONCEPTION GRAPHIQUE DU FORMULAIRE" ' -------------------------------------------------------------------------------------------------------------------------------------------------- ' DESSINER UN CADRE AUX BORDS ARRONDIS (Découpe de la fenêtre / Extérieur transparent - Intérieur coloré, Ajout d'une bordure (Choix de la couleur et épaisseur du trait) Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) Dim grfx As Graphics = e.Graphics grfx.SmoothingMode = SmoothingMode.HighQuality Dim grfxPath1 As New GraphicsPath Dim monRectangle As New Rectangle(12, 2, Me.Width - 24, Me.Height - 4) grfxPath1.AddRectangle(monRectangle) ' ----------------------------------- DEFINITION DE LA COULEUR DE "BRUSH" ----------------------------------------- Dim Couleur As Color = Color.FromArgb(100, 100, 100) Dim myBrush As SolidBrush myBrush = New SolidBrush(Couleur) ' ----------------------------------------------------------------------------------------------------------------- Dim co As New Pen(Brushes.White, 2.0F) grfx.DrawPath(co, GetRoundedRectPath(monRectangle, 10)) ' Bordure de fenêtre grfx.FillPath(myBrush, GetRoundedRectPath(monRectangle, 10)) ' Intérieur de fenêtre grfx.SetClip(grfxPath1, CombineMode.Replace) End Sub ' BLOC DE FONCTIONS POUR BOUGER LA FENETRE DANS L'ECRAN Private MouseCurrentPos, MouseNewPos, formPos, formNewPos As Point Private _mouseDown As Boolean = False Private Sub Frm_mapage_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseDown ' quand le clic est enfoncé, il faut activer le flag _mousedown à true et stocker la position courrante du curseur If e.Button = MouseButtons.Left Then _mouseDown = True MouseCurrentPos = Control.MousePosition formPos = Location End If End Sub 'Form1_MouseDown Private Sub Frm_mapage_Add_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseUp 'quand le clic est relaché, il faut activer le flag _mousedown à false If e.Button = MouseButtons.Left Then _mouseDown = False End If End Sub Private Sub Frm_mapage_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseMove ' déplacement de la form If _mouseDown = True Then MouseNewPos = Control.MousePosition ' la position de la souris à l'écran formNewPos.X = MouseNewPos.X - MouseCurrentPos.X + formPos.X formNewPos.Y = MouseNewPos.Y - MouseCurrentPos.Y + formPos.Y Location = formNewPos formPos = formNewPos MouseCurrentPos = MouseNewPos End If End Sub ' -------------------------------------------------------------------------------------------------------------------------------------------------- #End Region > A METTRE DANS UN MODULE : Public Function GetRoundedRectPath(ByVal Rect As System.Drawing.Rectangle, ByVal Radius As Integer) As GraphicsPath Dim Diam As Integer = Radius * 2.5 Dim ArcRect As New System.Drawing.Rectangle(Rect.Location, New Size(Diam, Diam)) Dim Path As New System.Drawing.Drawing2D.GraphicsPath() Path.AddArc(ArcRect, 180, 90) ArcRect.X = Rect.Right - Diam Path.AddArc(ArcRect, 270, 90) ArcRect.Y = Rect.Bottom - Diam Path.AddArc(ArcRect, 0, 90) ArcRect.X = Rect.Left Path.AddArc(ArcRect, 90, 90) Path.CloseFigure() Return Path End Function
Modifié le 23 avril 2018 à 11:56
Quelques petites précisions pour que cela fonctionne:
Mettre
Ensuite il faut que le Form ait la propriété FormBorderStyle à None et mettre un évenement pour le fermer comme ceci:
et si vous ne voulez pas voir les contours changer cela
par ceci
Sinon c'est sympa
@+ Le Pivert
23 avril 2018 à 00:10
> Description ajoutée
Modifié le 22 avril 2018 à 20:59
Ai lu trop vite désolé
Mes yeux me trahissent !
22 avril 2018 à 20:54
Par contre j'attends qu'il ajoute une description de son code.
:-)
22 avril 2018 à 20:34
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.