Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-12-2009, 17:23   #1
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
[C#]Form senza bordi

Ho visto che si possono facilmente eliminare i bordi di una form in fase progettazione semplicemente dando il valore "None" alla proprietà FormBorderStyle della Form. Così, proprio come voglio io, spariscono però anche i pulsanti chiudi, ridimensiona e riduci a icona (che ricreerò e risolvo da solo). Più che altro assieme a questi pulsanti (chiudi, ridimensiona, ecc), ossia quelli predefiniti di una finestra, scompare la barra del titolo che permette normalmente di spostare la form sullo schermo semplicemente cliccandoci e spostando il mouse senza lasciare il tasto sinsitro. Quindi come faccio a riottenere un'effetto simile per spostare la form?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 25-12-2009, 15:50   #2
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1060
devi aggiungere al form i gestori per questi eventi:

- MouseDown
- MouseUP
- MouseMove

dopo di che implementare una cosa del genere:

Codice:
bool drag;
Point startPoint;

void Form_MouseDown(object sender, MouseEventArgs e)
{          
        this.drag = true;            
        this.startPoint = new Point(e.X, e.Y);
}

void Form_MouseUp(object sender, MouseEventArgs e)
{
        this.drag = false;
}

void Form_MouseMove(object sender, MouseEventArgs e)
{
        if (this.drag)
        {
            Point p1 = new Point(e.X, e.Y);
            Point p2 = this.PointToScreen(p1);
            Point p3 = new Point(p2.X - this.startPoint.X, p2.Y - this.start_point.Y);
            this.Location = p3;
        }
}
spero di essere stato utile
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 26-12-2009, 19:55   #3
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
devo ancora provare ma sei stato davvvero esauriente
se io però volessi creare un'applicazione più complicata graficamente, di quelle con "forme" personalizzate e che quindi non sono più quel classico rettangolo delle normali windows form, cosa dovrei fare?
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 27-12-2009, 11:09   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
se io però volessi creare un'applicazione più complicata graficamente, di quelle con "forme" personalizzate e che quindi non sono più quel classico rettangolo delle normali windows form, cosa dovrei fare?
E' semplice. Essenzialmente ti serve definire un GraphicsPath, ossia un "percorso grafico" che definisce il contorno della figura. Figura che poi va assegnata alla Region della Form, o di qualsiasi altro Control di cui si vuole modificare l'aspetto :

Codice:
        private void Form1_Load(object sender, EventArgs e)
        {
            System.Drawing.Drawing2D.GraphicsPath GP = new System.Drawing.Drawing2D.GraphicsPath();
            GP.StartFigure();
            GP.AddEllipse(0, 0, this.Width, this.Height);
            GP.CloseFigure();
            Region R = new Region(GP);
            this.Region = R;
        }
In questo caso ho una Form ellittica.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v