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.
0 commenti:
Posta un commento