Maison  >  Article  >  développement back-end  >  Auto-apprentissage C#01 à partir de 0 – Bordure de formulaire auto-dessinée

Auto-apprentissage C#01 à partir de 0 – Bordure de formulaire auto-dessinée

黄舟
黄舟original
2017-02-04 10:29:052497parcourir

Introduit principalement l'éclaircissement (assombrissement) progressif des bordures de formulaires auto-dessinées et des couleurs d'arrière-plan.

1. Définissez d'abord le formulaire en mode sans bordure

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

Vous pouvez également cliquer avec le bouton droit sur le formulaire, sélectionner Propriétés, rechercher FormBorderStyler et le définir sur Aucun. À ce stade, les boutons réduire, agrandir et fermer dans le coin supérieur droit du formulaire disparaîtront, et la fonction de faire glisser le formulaire avec la souris disparaîtra également. Ceux-ci seront ajoutés à l'étape 4.

2. Dessinez la bordure

Sélectionnez le projet actuel, cliquez avec le bouton droit, ajoutez un composant, laissez la classe de composants Component1 hériter de la classe Panel, puis remplacez OnPaint(PaintEventArgs e) pour dessiner. la couleur de la bordure. Générez une solution et le composant sera automatiquement ajouté à la boîte à outils sous la colonne des composants. Le code de classe est le suivant :

public partial class Component1 : Panel
    {        public Component1()
        {
            InitializeComponent();
        }        public Component1(IContainer container)
        {
            container.Add(this);

            InitializeComponent();
        }        protected override void OnPaint(PaintEventArgs e)
        {
            ControlPaint.DrawBorder(e.Graphics,                          this.ClientRectangle,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid,
                          Color.FromArgb(00,59,96),                          2,
                          ButtonBorderStyle.Solid);            base.OnPaint(e);
        }
    }

Color.FromArgb(00,59,96) définit la couleur de la bordure, 2 définit la taille de la bordure.
Remarque : si vous ne savez pas quelle valeur RVB définir pour que la couleur soit belle. Vous pouvez télécharger un sélecteur de couleurs d'écran en ligne et lire la valeur RBG de la couleur qui vous semble bonne.

3. Ajoutez une bordure

Ajoutez le composant Component1 au formulaire et définissez sa propriété Dock sur Fill. Définissez ensuite la propriété Padding sur 2, 2, 2, 2 (correspondant à la taille de la bordure). Il peut également être implémenté de manière dynamique. Le code est le suivant :

this.component11.Dock = System.Windows.Forms.DockStyle.Fill;
this.component11.Padding = new System.Windows.Forms.Padding(2);

4. Ajoutez des fonctions de fermeture de formulaire, de minimisation et de glissement de la souris

Sur le composant de formulaire this.Component11, ajoutez Panel. et définissez Sa propriété Dock sur Top, la couleur d'arrière-plan personnalisée est 0, 102, 171 et la couleur de premier plan est Transparent.

this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(102)))), ((int)(((byte)(171)))));
this.panel1.ForeColor = System.Drawing.Color.Transparent;


Ajoutez ensuite deux étiquettes sur le panneau, définissez leur texte sur __ et X respectivement, pour les icônes de réduction et d'agrandissement. Les paramètres de police sont Microsoft YaHei, gras et petite taille 5. Enfin, ajoutez les événements MouseDown et MouseMove au panneau. Ajoutez un événement Click à l’étiquette et ajoutez les événements MouseEnter et MouseLeave afin que lorsque la souris se déplace sur l’icône, la souris prenne la forme d’une main.

Point mouseOffSet;private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            mouseOffSet = new Point(-e.X, -e.Y);
        }private void panel1_MouseMove(object sender, MouseEventArgs e)
        {            if (e.Button == MouseButtons.Left)
            {
                Point mousePosition = Control.MousePosition;
                mousePosition.Offset(mouseOffSet.X, mouseOffSet.Y);
                Location = mousePosition;
            }
        }private void labelMinimize_Click(object sender, EventArgs e)
        {            this.WindowState = FormWindowState.Minimized;
        }private void labelClose_Click(object sender, EventArgs e)
        {            this.Close();            this.Dispose();
            Application.Exit();
        }private void labelMinimize_MouseEnter(object sender, EventArgs e)
        {            this.Cursor = Cursors.Hand;
        }private void labelMinimize_MouseLeave(object sender, EventArgs e)
        {            this.Cursor = Cursors.Default;
        }private void labelClose_MouseEnter(object sender, EventArgs e)
        {            this.Cursor = Cursors.Hand;
        }private void labelClose_MouseLeave(object sender, EventArgs e)
        {            this.Cursor = Cursors.Default;
        }

5. Définissez la couleur d'arrière-plan du panneau pour qu'elle s'estompe progressivement

Ajoutez un événement Paint au panneau.

private void panel1_Paint(object sender, PaintEventArgs e)
        {            int y, dy;
            y = this.panel1.ClientRectangle.Location.Y;
            dy = this.panel1.ClientRectangle.Height / 90;            for (int i = 0; i <= 89;i++ )
            {
                Color c = new Color();                //调用Color对象的FromArgb方法
                c = Color.FromArgb(50, i + 50, i + 120);//0,102,171
                SolidBrush sb = new SolidBrush(c);
                Pen p = new Pen(sb, 1);                //绘制矩形
                e.Graphics.DrawRectangle(p, this.panel1.ClientRectangle.X, y, this.Width, y + dy);
                y = y + dy;                //i++;
            }        
        }

Ce qui précède est le contenu de l'auto-apprentissage C#01 à partir de 0 - bordure de formulaire auto-dessinée. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn). !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn