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
を投げるということです。
私には何が欠けていますか?
'System.Threading.Timer'が実行これを試しますバックグラウンドスレッドでUI要素にアクセスするには、呼び出すか、代わりに 'System.Windows.Forms.Timer'を使用する必要があります。 - また、実際のエラーメッセージ_を質問に含めることをお勧めします。例外にはエラーメッセージが含まれる可能性があります。したがって、例外タイプのみを通知すると、実際の問題を見るのがずっと難しくなります。 –