2009-05-29 14 views
6

Ho un modulo di Windows che fa apparire una finestra di dialogo se vengono soddisfatte le condizioni di certian quando il modulo viene caricato. Il problema è che la finestra non rimane in cima e posso ancora fare clic su cosa sul genitore. Tuttavia, c'è un pulsante sul modulo che quando viene premuto apre la stessa finestra, quando lo faccio funziona come previsto (come una finestra di dialogo).ShowDialog() non rende la finestra modale

C'è un problema con la visualizzazione di una finestra di dialogo quando si carica per la prima volta un modulo?

+1

Hai impostato correttamente il proprietario? – OregonGhost

+0

Potrebbe esserci un numero qualsiasi di ragioni per questo; oltre a indovinare casualmente, l'unico modo per diagnosticare il problema è vedere il codice che stai usando. –

risposta

2

Stai chiamando ShowDialog dalla classe Form? Perché imposterà la finestra genitore solo se chiamata da un altro modulo. In alternativa, è possibile utilizzare il sovraccarico con il parametro IWin32Window per impostare specificamente il proprietario.

0

può spiegare ulteriormente la questione in quanto questo è il mio codice che non presentano la forma è di per sé fino a quando la finestra è stata chiusa o si imposta il genitore o no

private void Form1_Load(object sender, EventArgs e) 
     { 
      //your functionality goes here  
      AboutBox1 box = new AboutBox1(); 
      box.ShowDialog(); 
     } 
    } 

dall'altro lato è anche possibile verificare con la proprietà TopMost

0

Il metodo ShowDialog deve essere richiamato dal modulo che si desidera essere il relativo genitore/proprietario in modo che sia modale per tale modulo. In alternativa, credo che sia possibile impostare direttamente il proprietario di una finestra di dialogo, ma non ho mai avuto bisogno di farlo.

0

DaBomb,

di fare ciò che si vuole, si dovrà chiamare il dialogo modale dal costruttore del modulo principale, non dalla Form_Load.

Qualcosa di simile a questo:

public Form1() 
    { 
     InitializeComponent(); 
     this.Show(); 
     Form2 popupForm = new Form2(); 
     popupForm.ShowDialog(); 
    } 
Problemi correlati