martedì 12 febbraio 2013

How to: GroupBox Add Style C#

Facile .. non si può, se lavorate in window form.
L'unica è usare wpf .. ma non è detta l'ultima parola, ossia se proprio siete ostinati e non volete scaricarvi la libreria di qualcuno che non conoscete, l'unica è farvelo da voi.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;

using System.Windows.Forms;

namespace ColredPanel
{
    public partial class ColoredGroupBox : UserControl
    {
        Color _c = Color.Lime;
        Pen _p = null;

        public Color GetBoxborder
        {
            get { return _c;}
            set
            {
                _c = value;
                _p = new Pen(new SolidBrush(_c));
                lblCaption.BackColor = _c;
            }
        }

        public string Caption
        {
            get { return lblCaption.Text; }
            set { lblCaption.Text = value; }
        }


        public ColoredGroupBox()
        {
            InitializeComponent();
            _p = new Pen(new SolidBrush(_c));

        }


        private void ColoredGroupBox_Paint
                   (object sender, PaintEventArgs e)
        {

            _p.Width = 2;
            
            e.Graphics.FillRectangle(
                     new SolidBrush(_c), 30, 4, lblCaption.Width, 19);

            e.Graphics.DrawEllipse(_p, 22, 5, 16, 16);
            e.Graphics.FillEllipse(new SolidBrush(_c), 21, 5, 16, 16);
            e.Graphics.DrawEllipse(_p, 20+lblCaption.Width, 5, 16, 16);            
            e.Graphics.FillEllipse(new SolidBrush(_c), 20 + lblCaption.Width,
               5, 16, 16);

                       
            e.Graphics.DrawRectangle(_p, 13, 13, this.Width - 20, 
               this.Height - 20);            
        }
    }
}

Questo naturalmente si tratta di un esempio .. che non è del tutto calzante perchè a design time il controllo fa davvero schifo.

Ma dato che si tratta di un esempio lascio a voi tutta la creatività che può servirvi per rendere il vostro controllo il più bello e lento possibile..



Nessun commento: