(c) "Windows Form 2.0 Windows e controlli personalizzati" di Matthew MacDonald.
Come ShowDialog mostra la nuova forma, un relazione implicita è stabilito tra la forma attiva, noto come modulo proprietario , e la nuova forma, nota come la forma di proprietà. Questa relazione assicura che il modulo di proprietà sia il modulo attivo e sia sempre visualizzato su all'inizio del modulo proprietario.
Una caratteristica di questo rapporto è che la forma di proprietà influisce sul comportamento della sua forma proprietario (quando si utilizza ShowDialog):
- Il modulo proprietario non può essere ridotto al minimo, massimizzata, o addirittura spostato.
- Il modulo di proprietà blocca l'input del mouse e della tastiera nel modulo proprietario.
- Il modulo proprietario è ridotto a icona quando il modulo di proprietà è.
- Solo il modulo di proprietà può essere chiuso.
- Se il proprietario e i moduli di proprietà sono ridotti a icona e se l'utente preme Alt + Tab per passare al modulo di proprietà, viene attivato il modulo di proprietà.
A differenza del metodo ShowDialog, però, una chiamata al Mostra metodo fa non stabilire un implicito rapporto proprietario di proprietà. Ciò significa che il modulo può essere il modulo attualmente attivo.
Senza una relazione implicita di proprietà del proprietario, i moduli proprietari e di proprietà possono essere ridotti a icona, ingranditi o spostati. Se l'utente chiude qualsiasi modulo diverso dal modulo principale, il modulo attivo più recente è riattivato.
Anche se ShowDialog stabilisce un implicito rapporto proprietario di proprietà, non c'è modo integrato per la forma di proprietà di richiamare alla o query la forma che aprì. Nel caso non modale, è possibile impostare la nuova proprietà Owner del modulo per stabilire la relazione di proprietà del proprietario. Come collegamento , è possibile passare il modulo proprietario come argomento a un sovraccarico del metodo Show, che accetta anche un parametro IWin32Window (IWin32Window viene implementato dagli oggetti UI Windows Form che espongono una proprietà HWND Win32 tramite IWin32Window. Gestire la proprietà).
Il comportamento delle forme in un esplicito modale proprietario di proprietà forma rapporto è lo stesso come la sua controparte modale implicita, ma la modale rapporto proprietario di proprietà fornisce un comportamento aggiuntivo nel caso non modale non-proprietario di proprietà. Innanzitutto, il modulo di proprietà non modale sempre viene visualizzato nella parte superiore del modulo proprietario, anche se entrambi possono essere attivi. È utile quando è necessario conservare un modulo, ad esempio una finestra mobile , sopra altri moduli all'interno di un'applicazione. In secondo luogo, se l'utente preme Alt + Tab per passare dal proprietario, i moduli di proprietà seguono la tuta . Per garantire che l'utente sappia quale modulo è il modulo principale, riduce al minimo il proprietario nasconde i pulsanti della barra delle attività per tutti i moduli di proprietà, lasciando visibile solo il pulsante della barra delle attività del proprietario.
(c) "Programmazione Windows Forms 2.0" di Chris Sells, Michael Weinhardt.
Questo non sembra applicarsi in Winforms, ma per la cronaca, sono venuto qui perché stavo avendo problemi in WPF. Se passassi a un'altra applicazione, quando ho cliccato di nuovo sul modulo genitore, la finestra di dialogo del bambino rimase bloccata (scocciatura dato che la finestra di dialogo del bambino era impostata per non apparire nella barra delle applicazioni). L'impostazione del proprietario della finestra di dialogo ha risolto questo problema. – Benjol
Avvia un worker in background e chiama ShowDialog.La finestra non verrà visualizzata di fronte all'applicazione ma sullo sfondo (solo per infastidire i programmatori ciò accade solo di tanto in tanto). – CodingBarfield
Barfieldmv, ho provato a fare quello che hai suggerito e il modulo appare in alto, non sullo sfondo. – nightcoder