Domanda

Voglio impedire all'utente di massimizzare il Windows Form a pieno schermo così ho disabilitato il pulsante di ingrandimento. Tuttavia, voglio essere in grado di avere l'utente 'ripristinare' il modulo. Quando si fa clic sul pulsante Ripristina voglio che mostrano un diverso, più piccolo, minified, la forma, che mostrerà loro un pulsante di ingrandimento che restituirà l'uso alla forma originale.

C'è un modo per fare questo?

Grazie.

modifica: Tu non capisci, non sto impedendo all'utente di ridimensionare il form. Che cosa sta accadendo è quando il clic sul pulsante Ripristina, si nasconde la forma e aprirne uno nuovo con meno controlli su di esso. Quando si clicca massimizzare la forma più piccola, si tornerà alla forma originale.

È stato utile?

Soluzione

Ho guardato un problema simile a questo sul lavoro e le uniche soluzioni sono riuscito a trovare impostazione coinvolto gli stili delle finestre senza documenti, che non era incline a fare.

Quindi la soluzione migliore per il vostro problema penserei sarebbe per nascondere minimizzare la corrente / massimizzare / pulsanti ripristino e aggiungere il proprio utilizzando alcuni comandi OwnerDraw o altro.

Guardando questo da un punto di vista interazione con l'utente vorrei ridurre al minimo i pulsanti / massimizzare / restore di fare esattamente la stessa cosa per la vostra applicazione come fanno per tutti gli altri. Ignorando le funzionalità creerebbe confusione per gli utenti, quindi, perché mi sento di raccomandare la creazione di diversi pulsanti o sulla barra del titolo o da qualche altra parte sulla vostra interfaccia che svolgono questa funzione.

Altri suggerimenti

FWIW, la risposta giusta è quello di rendere la vostra forma ridimensionare correttamente, adattandosi a qualsiasi dimensione della finestra e non per vincolare l'utente a quello che sembra proprio sul tuo mostra al tuo risoluzione e tuo la dimensione del carattere. Finestre non ridimensionabili sono una delle cose più fastidiose che incontro in un'applicazione (Windows stesso è pieno di loro).

È possibile impostare il MaximumSize e MinimumSize e attivare il pulsante di ingrandimento per ottenere questo tipo di effetto.

ho avuto una situazione simile di recente, e da una prospettiva di progettazione dell'interfaccia utente, trovato un buon esempio in Windows Media Player. Lascia la minimizzazione, massimizzazione e pulsanti di ripristino così come sono, e ha un pulsante separato in basso a destra per "Passa alla modalità compatta". E nella modalità mini / compatta, lo stesso pulsante cambia in "Passa alla modalità Full". Un altro esempio alternativo è Skype, che ha un pulsante aggiuntivo icona del sistema appena lasciato dello standard pulsante di riduzione, che alterna tra le modalità Compatto e standard.

(Se ho avuto il privilegio, avrei preferito di mettere questo come un commento da aggiungere alla risposta accettato di Daemin, ancora relativamente nuovo per StackOverflow)

'Ripristino' una forma spara il Resize evento in cui è possibile verificare se il form padre non è più FormWindowState.Maximized. In caso contrario, è possibile aprire il form figlio e nascondere il genitore.

Per invertire questo, si puo 'ottimizzare' il form figlio nascondendo (o smaltimento), quindi non-nascondere e impostare il form padre a <=>.

L'unico problema che posso vedere con questo metodo è che il <=> Evento probabilmente sparare diverse volte prima che il modulo raggiunge uno stato Maximumized. Può essere necessario un flag per ignorare questi fino al modulo passa dallo stato attuale allo stato desiderato, che può causare un ciclo infinito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top