2011-07-25 107 views

Respuesta

7

pasar un parámetro a la loginwindow de tipo MainWindow. Eso permite que la ventana de sesión para tener una referencia a la MainWindow:

this.Hide(); 
Login li = new Login(this); 
li.Show(); 

Y la ventana de inicio de sesión:

private MainWindow m_parent; 
public Login(MainWindow parent){ 
    m_parent = parent; 
} 

//Login Succesfull function 

private void Succes(){ 
    m_parent.Show(); 
} 
+0

i utiliza su solución, pero la ventana de acceso es se muestra vacío? ¿sabes cómo resolver este problema? – gasroot

2

¿Qué pasa ....

this.Hide(); 
Login li = new Login(); 
if(li.ShowDialog() == DialogResult.OK){ 
    //Do something with result 
    this.Show(); 
} 

Asegúrese de que en su sesión usted tiene algo así como ...

void OnLogin(){ 
    if(ValidateLogin()){ 
     this.DialogResult = DialogResult.OK; 
     this.Close(); 
    } 
} 
0

¿Qué tipo de diseño, etc se está utilizando para su interfaz de usuario? Si convierte la ventana de inicio de sesión en un cuadro de diálogo modal, ¿necesita ocultar la ventana principal?

Como alternativa, podría tener algún tipo de indicador de "inicio de sesión exitoso" y vincular la visibilidad de cada ventana a este valor, utilizando conversores para obtener el resultado deseado. Algo en la línea de:

¿Eso tiene sentido?

EDITAR: Obviamente, los elementos dentro de la cuadrícula no pueden ser Windows, de ahí mi pregunta inicial sobre el diseño que está utilizando.

3

primera respuesta es buena, pero que va a crear una nueva ventana vacía para evitar este problema (redirigir a una ventana creada anteriormente) basta con modificar el constructor como esto

public Login(MainWindow parent):this() 
{ 
    m_parent = parent; 
} 
Cuestiones relacionadas