いつも大変お世話になります。
WPF(C#)で、controlのIsFocusedについて教えてください。
Windows7 Pro, Visual Studio 2013 Expressの組み合わせで、WPFアプリケーションを作っています。
stackPanel/textboxにフォーカスがある時という条件でif文を組みたいと思っております。
C# Formの場合は
if(dataGridView.Focused) {
// 処理
}
なので、
WPF(C# code)
if (stackPanel.IsFocused)
//処理
else if (textBox.IsFocused)
//処理
のような条件を立ててみました。
System.Timer.Timer timer = new System.Timer.Timer();
private void setting() {
timer.Interval = 500;
timer.Enabled = true;
timer.Start();
timer.Elapsed+=timer_Elapsed;
}
void softwarewatchtimer_Elapsed(object sender, ElapsedEventArgs e) {
if (stackPanel.IsFocused)
//処理
else if (textBox.IsFocused)
//処理
}
とタイマーで実行すると別threadからUIにアクセスすることになり、System.InvalidOperationExceptionの例外となります。
どう回避たらよいか、ご示唆ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/01/13 06:05
2016/01/13 06:35
2016/01/13 06:49
退会済みユーザー
2016/01/13 08:51
2016/01/13 09:24