2009-05-29 34 views
6

Tengo un formulario de Windows que aparece un cuadro de diálogo si se cumplen las condiciones de certian cuando se carga el formulario. El problema es que la ventana no se mantiene en la parte superior y aún puedo hacer clic en "cosa" en el elemento principal. Sin embargo, hay un botón en el formulario que cuando se presiona abre la misma ventana, cuando lo hago funciona como se espera (como una ventana de diálogo).ShowDialog() no hace que la ventana modal

¿Hay algún problema al mostrar un cuadro de diálogo cuando se carga un formulario por primera vez?

+1

¿Ha ajustado correctamente el propietario? – OregonGhost

+0

Puede haber varias razones para esto; aparte de adivinar al azar, la única forma de diagnosticar el problema es ver el código que está utilizando. –

Respuesta

2

¿Está llamando a ShowDialog desde la clase Formulario? Porque solo configurará la ventana principal si se llama desde otro Formulario. Alternativamente, puede usar la sobrecarga que tiene el parámetro IWin32Window para establecer específicamente al propietario.

0

se puede explicar más el tema, ya que es mi código que no muestran la forma en sí hasta que el diálogo se ha cerrado o bien se establece que el padre o no

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

en el otro lado también se puede verifique con la propiedad TopMost

0

El método ShowDialog necesita ser llamado desde el formulario que desea que sea su padre/propietario para que sea modal a ese formulario. Alternativamente, creo que puede establecer directamente el propietario de un cuadro de diálogo, pero nunca tuve que hacer eso.

0

DaBomb,

para hacer lo que quiere, tendrá que llamar a su diálogo modal desde el constructor de su formulario principal, no desde el evento Form_Load.

Algo como esto:

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