giovedì 27 ottobre 2011

[C#] Form con ControlBox Personalizzata

Descrizione :
Un semplice esempio su come ottenere una Form con ControlBox personalizzata.

+ Articolo :

Nell'esempio ho una Form con queste 3 Proprietà impostate a design :
ControlBox = False
FormBorderStyle = Sizable
Text = [nessun testo]

In questo caso voglio replicare i 3 Controlli standard della ControlBox di una Window e aggiungerne uno per poter minimizzare nella Tray.
Perciò, nell'ordine, partendo dall'angolo destro superiore della Form, vado ad aggiungere 4 Button ( quadrati - aspetto grafico a piacere... ) :

--> cmd_close
--> cmd_maximize
--> cmd_minimize
--> cmd_tray


La Proprietà Anchor su tutti questi pulsanti è = Top, Right.
Tutti i controlli aggiuntivi devono avere stesso Anchor.

Inoltre aggiungo un controllo notifyIcon1, utile per il "Minimize to Tray".

Le azioni standard nonchè lo spostamento con il mouse che viene perso eliminando la barra, possono essere replicati con poco codice.

--> Codice Form :

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //Selezione e mouse
        private bool selezione = false;
        private int eXSel = 0;
        private int eYSel = 0;

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            this.selezione = true;
            eXSel = e.X;
            eYSel = e.Y;
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (this.selezione == true)
            {
                this.Left -= (this.eXSel - e.X);
                this.Top -= (this.eYSel - e.Y);
            }
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            this.selezione = false;
        }

        private void cmd_maximize_Click(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Maximized)
            {
                this.WindowState = FormWindowState.Normal;
            }
            else 
            {
                this.WindowState = FormWindowState.Maximized;
            }
        }

        private void cmd_close_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cmd_minimize_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }

        private void cmd_tray_Click(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            this.Visible = false;
        }

        private void notifyIcon1_Click(object sender, EventArgs e)
        {
            notifyIcon1.Visible = false;
            this.Visible = true;
        }
    }

+ Fine Articolo.

Un Click su "Mi Piace" è il modo migliore per ringraziare l'autore di questo articolo.



0 commenti:

Posta un commento

Favorites Twitter Facebook Delicious Digg Stumbleupon More

 
Design by Free WordPress Themes Modificato da MarcoGG