2011-07-25 12 views

Odpowiedz

7

przekazać parametr do loginwindow typu MainWindow. Który pozwala okno logowania, aby mieć odniesienie do MainWindow:

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

i okno logowania:

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

//Login Succesfull function 

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

użyłem swoje rozwiązanie ale okno logowania pokazano puste? Czy wiesz, jak rozwiązać ten problem? – gasroot

2

co ....

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

Upewnij w loginu masz coś jak ...

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

jakiego rodzaju układ, itp używasz do interfejsu? Jeśli utworzysz okno dialogowe modalne, czy musisz ukryć główne okno?

Alternatywnie, możesz mieć jakąś flagę "pomyślnie zalogowaną" i powiązać widoczność każdego okna z tą wartością - używając konwerterów, aby uzyskać pożądany wynik? Coś w rodzaju:

Czy to ma sens?

EDYCJA: Oczywiście elementy w sieci nie mogą w rzeczywistości być Windowsami - stąd moje pierwsze pytanie dotyczące układu, którego używasz!

3

pierwsza odpowiedź jest dobra, ale to będzie tworzyć nową puste okno aby uniknąć tego problemu (przekierowanie do wcześniej utworzonego okna) wystarczy zmodyfikować konstruktor jak ten

public Login(MainWindow parent):this() 
{ 
    m_parent = parent; 
} 
Powiązane problemy