2012-06-21 19 views
6

Vorrei poter aggiungere il pulsante di aiuto sul mio winform, ma mantenere i pulsanti maxmimize e minimizza, ma Windows standard è disabilitare entrambi per poter mostrare il pulsante di aiuto .Aggiungi pulsante di aiuto, ma continua a ingrandire e riduci

C'è già una domanda simile: How to include help '?' in title bar of winform - ma in quella domanda colui che ha posto la domanda si accontenta di rimuovere quei 2 pulsanti per l'aiuto da mostrare.

C'è via che posso avere aiuto, i pulsanti max, min e close tutti lì allo stesso tempo?

Grazie.

+1

Sì, ma hai letto quella risposta? Indica che dovresti ricreare la barra del titolo da solo. Questo è un sacco di lavoro per un così piccolo guadagno. – LarsTech

+0

@LarsTech - Speravo che ci fosse un modo senza ricodificare completamente il confine. – Axxelsian

risposta

6

Windows non supporta la visualizzazione di entrambi. Una soluzione alternativa consiste nel fornire il proprio pulsante per attivare la stessa azione. Mettilo da qualche parte vicino all'angolo in alto a destra. Puoi attivare questo inviando un messaggio WM_SYSCOMMAND, proprio come fa il pulsante di aiuto standard. In questo modo:

private void Help_Click(object sender, EventArgs e) { 
     Help.Capture = false; 
     SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_CONTEXTHELP, IntPtr.Zero); 
    } 

    private const int WM_SYSCOMMAND = 0x112; 
    private const int SC_CONTEXTHELP = 0xf180; 
    [System.Runtime.InteropServices.DllImport("user32.dll")] 
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); 

Che presuppone che il nome del pulsante sia "Guida".

+0

Non mi ero reso conto che avrei potuto usare un pulsante che ho creato per attivare la stessa azione. Grazie. – Axxelsian

+0

In realtà, sembra che Windows supporti la visualizzazione di entrambi, come puoi vedere aprendo l'ultima versione di Word. Infatti, hanno persino inserito un altro pulsante per il controllo del nastro. È solo che, per qualche motivo, questo non è supportato correttamente in Windows Form ... – glopes

+2

Le app di Office utilizzano una cornice personalizzata, non la cornice della finestra di Windows standard. Belle cose che puoi fare quando hai centinaia di programmatori che lavorano su un prodotto. –

1

Un modo per fare ciò è disegnare il proprio bordo.

FormBorderStyle = None 

Ora creare la propria area di didascalia. Questo non è banale perché devi gestire gli eventi di ridimensionamento di trascinamento, la trasparenza se desideri angoli arrotondati, ecc.

Problemi correlati