2012-09-16 9 views
0

textBox1_Leave이라는 이벤트를 만들었습니다. 그러나 프로그램을 실행할 때 포커스가 txtBox1에서 이동하면 이벤트가 트리거되지 않습니다.이벤트가 트리거되지 않았습니다.

사용자가 입력 한 Name 값이 txtBox1에 입력되어 있는지 확인할 수 있도록이 이벤트가 트리거되기를 바랍니다. 그렇다면 button1.Enable = true을 설정하여 button1을 사용하고 그렇지 않으면 false을 사용하고 싶습니다.

내 C# 코드 :

private void textBox1_Leave(object sender, EventArgs e) 
{ 
    OleDbConnection A=new OleDbConnection(); 
    A.ConnectionString=Program.DBPATH; 
    A.Open(); 

    OleDbCommand BB=new OleDbCommand(); 
    BB.Connection=A; 
    BB.CommandText="SELECT username FROM Users WHERE (username = '" + textBox1.Text + "')"; 
    OleDbDataReader CC = BB.ExecuteReader(); 

    if (CC.Read()) 
    { 
     button1.Enabled=true; 
    } 
    else 
    { 
     button1.Enabled=false; 
    } 
} 
+0

디버거를 사용하면 어떻게됩니까? 아무것도 없다면 이벤트는 소리가 나지 않는 것처럼 들린다. 폼의 생성자에'textBox1.Leave + = textBox1_Leave; '를 넣는다. – LarsTech

+0

'아무 일도 일어나지 않습니다'는 의미는 무엇입니까? 귀하의 이벤트 핸들러가 전혀 입력되지 않았거나 DB가 호출되지 않고 버튼 상태가 수정 되었습니까? –

+0

이벤트가 전혀 호출되지 않는 경우 문제는 이벤트 핸들러가 올바르게 등록되어 실제로 떠나는 것이 아니라는 것입니다. 마우스를 움직이면 이벤트가 시작되지 않습니다. 아무것도 작동하지 않는다는 것은 모호합니다. 더 많은 정보를 제공하거나이 질문은 닫힙니다. – Paparazzi

답변

0

난 당신이 Windows 응용 프로그램을 개발하고 생각합니다. 다음 단계를 수행하는 것이 좋습니다.

1) 프로그램을 디버그하고 중단 점이 부딪히지 않았는지 확인하십시오.

2) 양식에 텍스트 상자 이외의 컨트롤이 있어야하며 Leave 이벤트 만 실행됩니다. 양식에 텍스트 상자 만 있으면 텍스트 상자의 나가기 이벤트가 실행되지 않습니다.

3) try catch catch 블록을 사용하면 런타임 오류가 발생하면 응용 프로그램이 중단됩니다.

2
first check the event is wired up in constructor of the page 

textBox1.Leave += textBox1_Leave; 


and then 

1) Debug the program and check whether break point is hitting. 
+0

감사합니다 ... 그것은 작동합니다! –

+0

대환영 ..... – Pushpendra

+0

문제가 해결되면 답변을 수락하십시오! – mrz

관련 문제