2010-03-11 1 views
1

다시 문제가 있습니다. 버튼을 클릭하면 창이 나타납니다. 다시 버튼을 클릭하면 같은 창이 다시 나타납니다. 처음 버튼을 클릭하면 페이지가 나타납니다. 하지만 두 번째 클릭을 방지하고 싶습니다. 누구든지이 문제를 해결할 수 있습니까? 미리 감사드립니다.wpf가 두 번째 클릭 버튼을 방지합니다.

private void Dictionary_Click(object sender, RoutedEventArgs e) 
{ 
    Dictionary dic = new Dictionary(); 
    dic.Show(); 
    dic.Topmost = true; 
} 

답변

2

간단한 불리언 값을 설정하여 창이 이미 열려 있는지 확인 하시겠습니까?

private bool isWindowAlreadyOpen = false; 
private void Dictionary_Click(object sender, RoutedEventArgs e) 
{ 
    if (!isWindowAlreadyOpen) 
    { 
     Dictionary dic = new Dictionary(); 
     dic.Show(); 
     dic.Topmost = true; 
     isWindowAlreadyOpen = true; 
    } 
} 

트릭을해야합니다.

편집
당신은 부울 설정 해제하기 위해 윈도우의 폐쇄 이벤트를 등록해야합니다 : 당신은이 창을 원하는 경우 dic.ShowDialog()을 사용할 수 있습니다, 또는

private bool isWindowAlreadyOpen = false; 
private void Dictionary_Click(object sender, RoutedEventArgs e) 
{ 
    if (!isWindowAlreadyOpen) 
    { 
     Dictionary dic = new Dictionary(); 
     dic.Show(); 
     dic.Topmost = true; 
     dic.Closed += Dictionary_Closed; 
     isWindowAlreadyOpen = true; 
    } 
} 

private void Dictionary_Closed(object sender, EventArgs e) 
{ 
    isWindowAlreadyOpen = false; 
} 

EDIT2
을 맨 위와 유일한 인스턴스가되어야합니다.

+0

나는 그것을 시도했다. 그것은 작동합니다. 하지만 창을 닫고 다시 열어 볼 때 열려 있지 않습니다. 그것에 대해 조금이라도 생각해 볼 수 있습니까? 덕분에 모두 . – neki

+0

고마워요. 그것은 효과가 있었다. 나는 wpf와 .net의 새로운 것이다. 다시 감사합니다. 잘 했어. – neki