2010-08-29 12 views

risposta

32
form.Text = string.Empty; 
form.ControlBox = false; 
form.FormBorderStyle = FormBorderStyle.SizableToolWindow; 

Per una fissa finestra dimensioni, è comunque necessario utilizzare FormBorderStyle.SizableToolWindow, ma è possibile ignorare lo WndProc del modulo per ignorare i test di hit non client (utilizzati per passare ai cursori di dimensionamento):

protected override void WndProc(ref Message message) 
{ 
    const int WM_NCHITTEST = 0x0084; 

    if (message.Msg == WM_NCHITTEST) 
     return; 

    base.WndProc(ref message); 
} 

Se si desidera applicare davvero le dimensioni, si potrebbe anche impostare MinimumSize pari al MaximumSize sul modulo.

+0

No, questo rimuove il confine completamente –

+0

@ oɔɯǝɹ: form.FormBorderStyle = FormBorderStyle.SizableToolWindow sembra funzionare correttamente per me. –

+0

@ oɔɯǝɹ: 'FixedToolWindow' rimuove il bordo 3D. Vedere la mia risposta aggiornata per ottenere un comportamento a dimensione fissa con il bordo 3D intatto. –

0

form.FormBorderStyle = FormBorderStyle.Fixed3D;

+0

Sebbene questo codice possa aiutare a risolvere il problema, fornire un contesto aggiuntivo sul perché e/o su come risponde alla domanda migliorerebbe significativamente il suo valore a lungo termine. Si prega di modificare la risposta per aggiungere qualche spiegazione. –

1

Poiché "questa modifica è stata pensata per indirizzare l'autore del post e non ha senso come modifica. Dovrebbe essere stato scritto come commento o risposta". Presenterò una modifica alla risposta di Chris come una nuova risposta.

Il codice la sua risposta funziona come descritto - tranne che impedisce anche che si verifichi un evento del mouse dell'area client. È necessario restituire 1 (come in HTCLIENT) per risolverlo.

protected override void WndProc(ref Message message) 
{ 
    const int WM_NCHITTEST = 0x0084; 
    const int HTCLIENT = 0x01; 

    if (message.Msg == WM_NCHITTEST) 
    { 
     message.Result = new IntPtr(HTCLIENT); 
     return; 
    } 

    base.WndProc(ref message); 
} 
Problemi correlati