2009-05-18 5 views
6

Accodamento della barra delle applicazioni a sinistra, che consente l'apertura di molte finestre al di sotto della barra delle applicazioni.Qual è il modo corretto di creare un modulo non oscurato dalla barra delle applicazioni di Windows?

Nessuno dei valori System.Windows.Form.FormStartPosition prende in considerazione la barra delle applicazioni ad eccezione di Manuale. È questo in base alla progettazione? È frustrante. Voglio rispettare i valori predefiniti di posizione del monitor e della finestra che il sistema operativo dovrebbe applicare.

+0

Per favore descrivi di più la tua domanda, non è troppo chiaro – abatishchev

+0

Ho iniziato ad agganciare il mio a destra perché questo era semplicemente troppo fastidioso. La posizione "predefinita" derivante dall'API CreateWindowEx ha avuto questo bug per sempre, e probabilmente rimarrà per sempre di più. –

risposta

5

Bene, se WinForms non lo fa automaticamente, potrebbe essere necessario impostarlo manualmente.

Dovresti utilizzare System.Windows.Forms.Screen.PrimaryScreen.WorkingArea per ottenere l'area dello schermo senza la barra delle applicazioni e utilizzare tale rettangolo per calcolare manualmente l'area di avvio per il modulo e impostarlo come la proprietà Bound del modulo. (Assicurarsi che il modulo stia utilizzando FormStartPosition.Manual).

+1

Devo anche controllare se la barra delle applicazioni è impostata per nascondere automaticamente e se l'utente vuole che la barra delle applicazioni compaia su Windows. Argh. –

+0

Generalmente trovo che se vuoi che il tuo programma sia "bello" e non abbia tutti quei piccoli animaletti allora hai davvero un sacco di lavoro in più. Ed è un vero peccato che solo pochi utenti apprezzeranno questo (ma tu stesso essere uno di questi utenti è una ragione abbastanza importante per fare il lavoro: D) –

1

Penso che non ci sia un modo .NET per farlo. Non vedo alcun motivo per averlo.

È possibile individuare taskbar position e inserire il modulo manualmente.

+2

La ragione che ho dato non è sufficiente? La posizione iniziale predefinita di una finestra dovrebbe rispettare il tasbkar se "Mantieni la barra delle applicazioni sopra le altre finestre" è selezionata. Vedere OS X. L'alternativa è trovare quale sia la preferenza di cui sopra impostata, trovare il monitor su cui le finestre dovrebbero aprirsi per impostazione predefinita, scoprire se la barra delle applicazioni è collegata alla finestra e in tal caso calcolare manualmente la posizione di partenza . –