お世話になっております。
BackGroundWorkerのDoWorkイベントの中から、コントロールの値によってif文で分岐したいのですが、例外が発生します。
C#
1 if (ElementsIndex.Text == "3") 2 { 3 if (titleMunicipalDistrict.Checked == true) 4 { 5 if (DescriptiontitleMunicipalDistrict.Checked == true) 6 { 7 if (bottomHtmlTextCheck.Checked == true) 8 { 9 if (categoryStatus.SelectedIndex == 0) 10 { 11 } 12 } 13 } 14 } 15 }
ネストの一番深いifの categoryStatusはComboBoxです。それいがいは全部チェックボックスです。
不思議な事に、例外が発生するのはcategoryStatusのSelectedIndexプロパティを参照しているif文の行なんです。
他のチェックボックスのif文は通過しているようです。
別スレッドからコントロールを参照できないとしたらチェックボックスも参照できないはずではないのですか?
なぜComboBoxのみ例外が発生してしまうのでしょうか・・・
別スレッドからコントロールのプロパティを参照する方法を教えて下さい。お願いします。
また、このようにチェックボックスやコンボボックスによって処理を変えたい場合、if文のネストがとてつもない深さになりものすごく見づらいのですが、他にいい方法はありませんか?
追記:
すみません。ElementsIndexはDomainUpDownです。
追記:
発生する例外は型 'System.InvalidOperationException'です。
コントロールはすべてメインスレッドで作っています。
回答2件
あなたの回答
tips
プレビュー