Lire en anglais

Partager via


CheckBoxRenderer Classe

Définition

Fournit les méthodes utilisées pour restituer un contrôle Check Box avec ou sans styles visuels. Cette classe ne peut pas être héritée.

public sealed class CheckBoxRenderer
public static class CheckBoxRenderer
Héritage
CheckBoxRenderer

Exemples

L’exemple de code suivant montre comment écrire un contrôle personnalisé qui utilise la DrawCheckBox méthode pour dessiner une case à cocher qui répond aux clics de souris.

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace CheckBoxRendererSample
{
    class Form1 : Form
    {
        public Form1()
            : base()
        {
            CustomCheckBox CheckBox1 = new CustomCheckBox();
            Controls.Add(CheckBox1);

            if (Application.RenderWithVisualStyles)
                this.Text = "Visual Styles Enabled";
            else
                this.Text = "Visual Styles Disabled";
        }

        [STAThread]
        static void Main()
        {
            // If you do not call EnableVisualStyles below, then 
            // CheckBoxRenderer.DrawCheckBox automatically detects 
            // this and draws the check box without visual styles.
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }
    }

    public class CustomCheckBox : Control
    {
        private Rectangle textRectangleValue = new Rectangle();
        private Point clickedLocationValue = new Point();
        private bool clicked = false;
        private CheckBoxState state = CheckBoxState.UncheckedNormal;

        public CustomCheckBox()
            : base()
        {
            this.Location = new Point(50, 50);
            this.Size = new Size(100, 20);
            this.Text = "Click here";
            this.Font = SystemFonts.IconTitleFont;
        }

        // Calculate the text bounds, exluding the check box.
        public Rectangle TextRectangle
        {
            get
            {
                using (Graphics g = this.CreateGraphics())
                {
                    textRectangleValue.X = ClientRectangle.X +
                        CheckBoxRenderer.GetGlyphSize(g,
                        CheckBoxState.UncheckedNormal).Width;
                    textRectangleValue.Y = ClientRectangle.Y;
                    textRectangleValue.Width = ClientRectangle.Width -
                        CheckBoxRenderer.GetGlyphSize(g,
                        CheckBoxState.UncheckedNormal).Width;
                    textRectangleValue.Height = ClientRectangle.Height;
                }

                return textRectangleValue;
            }
        }

        // Draw the check box in the current state.
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            CheckBoxRenderer.DrawCheckBox(e.Graphics,
                ClientRectangle.Location, TextRectangle, this.Text,
                this.Font, TextFormatFlags.HorizontalCenter,
                clicked, state);
        }

        // Draw the check box in the checked or unchecked state, alternately.
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if (!clicked)
            {
                clicked = true;
                this.Text = "Clicked!";
                state = CheckBoxState.CheckedPressed;
                Invalidate();
            }
            else
            {
                clicked = false;
                this.Text = "Click here";
                state = CheckBoxState.UncheckedNormal;
                Invalidate();
            }
        }

        // Draw the check box in the hot state. 
        protected override void OnMouseHover(EventArgs e)
        {
            base.OnMouseHover(e);
            state = clicked ? CheckBoxState.CheckedHot :
                CheckBoxState.UncheckedHot;
            Invalidate();
        }

        // Draw the check box in the hot state. 
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);
            this.OnMouseHover(e);
        }

        // Draw the check box in the unpressed state.
        protected override void OnMouseLeave(EventArgs e)
        {
            base.OnMouseLeave(e);
            state = clicked ? CheckBoxState.CheckedNormal :
                CheckBoxState.UncheckedNormal;
            Invalidate();
        }
    }
}

Remarques

La CheckBoxRenderer classe fournit un ensemble de static méthodes qui peuvent être utilisées pour afficher un contrôle de case à cocher. Le rendu d’un contrôle fait référence au dessin de l’interface utilisateur d’un contrôle. Pour dessiner une case à cocher, utilisez l’une DrawCheckBox des méthodes . Ces méthodes fournissent diverses options, telles que le dessin de texte ou une image avec la case à cocher.

Si les styles visuels sont activés dans le système d’exploitation et que les styles visuels sont appliqués à l’application actuelle, DrawCheckBox dessine la case à cocher avec le style visuel actuel. Sinon, DrawCheckBox dessine la case à cocher avec le style Windows classique. Cela est utile si vous dessinez un contrôle personnalisé qui doit correspondre automatiquement au paramètre de style visuel actuel du système d’exploitation.

Cette classe encapsule les fonctionnalités d’un System.Windows.Forms.VisualStyles.VisualStyleRenderer qui est défini sur l’un des éléments exposés par la System.Windows.Forms.VisualStyles.VisualStyleElement.Button.CheckBox classe . Pour plus d’informations, consultez Rendu des contrôles avec les styles visuels.

Propriétés

RenderMatchingApplicationState

Obtient ou définit une valeur indiquant si le convertisseur utilise l'état de l'application pour déterminer le style de rendu.

Méthodes

DrawCheckBox(Graphics, Point, CheckBoxState)

Dessine un contrôle Check Box dans l'état et l'emplacement spécifiés.

DrawCheckBox(Graphics, Point, Rectangle, String, Font, Boolean, CheckBoxState)

Dessine un contrôle Check Box dans l'état et l'emplacement spécifiés, avec le texte spécifié et un rectangle de focus facultatif.

DrawCheckBox(Graphics, Point, Rectangle, String, Font, Image, Rectangle, Boolean, CheckBoxState)

Dessine un contrôle Check Box dans l'état et l'emplacement spécifiés, avec le texte et l'image spécifiés, et un rectangle de focus facultatif.

DrawCheckBox(Graphics, Point, Rectangle, String, Font, TextFormatFlags, Boolean, CheckBoxState)

Dessine un contrôle Check Box dans l'état et l'emplacement spécifiés, avec le texte et la mise en forme du texte, et un rectangle de focus facultatif.

DrawCheckBox(Graphics, Point, Rectangle, String, Font, TextFormatFlags, Image, Rectangle, Boolean, CheckBoxState)

Dessine un contrôle Check Box dans l'état et l'emplacement spécifiés, avec le texte, la mise en forme du texte, une image et un rectangle de focus facultatif.

DrawParentBackground(Graphics, Rectangle, Control)

Dessine l’arrière-plan du parent d’un contrôle dans la zone spécifiée.

GetGlyphSize(Graphics, CheckBoxState)

Retourne la taille du glyphe de la case à cocher.

IsBackgroundPartiallyTransparent(CheckBoxState)

Indique si l'arrière-plan de la case à cocher a des parties translucides ou à contrôle alpha.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi