Meilleur article 1/3/2011 - 1/4/2011
-
lundi 7 mars 2011 06:46
Je vois que mon message a été élu meilleur article le premier avril. Merci Alex.
Je me permets d'y ajouter un petit mode opératoire pour l'utilisation éventuelle de ce composant dérivé du Panel.
- Créer un nouvel élément de type "Fichier de code" dans un projet Windows Forms vb.NET
- Copier le code ci-dessous.
- Compiler une première fois, ce qui aura pour effet de faire apparaître un nouveau contrôle dans la boîte à outil du concepteur de formulaire.
- Poser le contrôle sur un formulaire et jouer avec les propriétés "BackColor", "BackColor2" et "GradientMode"
- Le scrolling n'est pas géré, par choix. Mais au besoin, on peut modifier le rectangle qui est rempli en tenant compte de la propriété AutoScrollPositionImports System.ComponentModel Imports System.Drawing Imports System.Drawing.Drawing2D Public Class BlendPanel Inherits Panel <EditorBrowsable(EditorBrowsableState.Never)> Private m_backColor2 As Color = SystemColors.Control <EditorBrowsable(EditorBrowsableState.Never)> Private m_gradientMode As LinearGradientMode = LinearGradientMode.Vertical Sub New() Me.SetStyle(ControlStyles.ResizeRedraw, True) Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True) Me.DoubleBuffered = True End Sub <Category("Appearance")> _ Public Property BackColor2() As Color Get Return Me.m_backColor2 End Get Set(ByVal value As Color) Me.m_backColor2 = value Me.Invalidate() End Set End Property <Category("Appearance")> _ Public Property GradientMode() As LinearGradientMode Get Return Me.m_gradientMode End Get Set(ByVal value As LinearGradientMode) Me.m_gradientMode = value Me.Invalidate() End Set End Property
Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs) Using linearGradientBrush As New LinearGradientBrush(Me.ClientRectangle, Me.BackColor, Me.BackColor2, Me.GradientMode) e.Graphics.FillRectangle(linearGradientBrush, e.ClipRectangle) End Using End Sub
EndL'intérêt ici étant moins de faire du graphisme que de montrer comment, grâce à la programmation objet, on peut adapter l'existant.- Fractionné Alex PetrescuMicrosoft Employee, Moderator vendredi 1 avril 2011 12:05 meilleur article
- Modifié Foleide. _ samedi 2 avril 2011 11:53 Ajout d'explications
Toutes les réponses
-
samedi 13 octobre 2012 16:07
Merci pour cet exemple de développement d’un UserContol à partir d’un contrôle Panel
Je suis en ce moment en phase d’apprentissage avec VB 2010 et celui-ci m’a permit de comprendre plusieurs notions mal interprétées dans la conception d’un CustomControl.
Encore merci

