TextChanged
이벤트를 사용하여 텍스트 상자의 키 입력에 반응하는 WinForms 응용 프로그램이 있습니다. 마지막 키 입력 이후 짧은 간격 (어쩌면 300 밀리 초)이 될 때까지 반응을 지연시키고 싶습니다. 다음은 내 현재 코드는 다음과 같습니다지연 TextChanged 이벤트에 반응
private void TimerElapsed(Object obj)
{
if (textSearchString.Focused)
{ //this code throws exception
populateGrid();
textTimer.Dispose();
textTimer = null;
}
}
private void textSearchString_TextChanged(object sender, EventArgs e)
{
if (textTimer != null)
{
textTimer.Dispose();
textTimer = null;
}
textTimer = new System.Threading.Timer(TimerElapsed, null, 1000, 1000);
}
내 문제는 textSearchString.Focused
가 System.InvalidOperationException
을 발생한다는 것입니다.
무엇이 누락 되었습니까?
를 A는'System.Threading.Timer' 실행 배경 스레드. UI 요소에 액세스하려면 호출해야하며 그렇지 않으면'System.Windows.Forms.Timer'를 대신 사용하십시오. 또한 질문에 실제 오류 메시지 _ 포함하는 것이 좋습니다. 예외에는 모든 오류 메시지가있을 수 있으므로 예외 유형 만 알려주면 실제 문제를 보는 것이 훨씬 어려워집니다. –