データソースにバインドされたテキストボックスがあります。テキストボックスのTextChangedイベントは、別のテキストボックスを更新します。
問題は、最初のテキストボックスを表示したくないので、Visibleプロパティをfalseに設定したことです。
ただし、TextChangedイベントは発生しません。
フォームの読み込みを設定することで回避できますが、適切な解決策が必要Visible=Trueです。Left=-100000
誰か説明してもらえますか?
データソースにバインドされたテキストボックスがあります。テキストボックスのTextChangedイベントは、別のテキストボックスを更新します。
問題は、最初のテキストボックスを表示したくないので、Visibleプロパティをfalseに設定したことです。
ただし、TextChangedイベントは発生しません。
フォームの読み込みを設定することで回避できますが、適切な解決策が必要Visible=Trueです。Left=-100000
誰か説明してもらえますか?
textbox.Visible = falseデザイナではなくFormLoadイベントで設定します。それはハンドルの作成と関係があります。構築中にテキストボックスが表示されない場合、ハンドルは作成されません。構築後にテキストボックスを非表示にすると、ハンドルが作成され、イベントが発生します。
MSDNのこのディスカッションを参照してください。
受け入れられた回答の代替ソリューションは、LoadedでTextChangedリスナーを設定することです。これは、私にとってはまったく同じように機能し(少なくとも、Silverlightでは)、デザイナーのビューを適切に保ちます。
それはどのタイプのデータソースですか?テキストボックスを使用して更新をリッスンする代わりに、直接使用できるイベントがある場合があります。
Visibleがfalseに等しい場合、Controlはレンダリングされません。したがって、イベントを発生させることはできません。
代わりに、をに設定styleしdisplay:noneます。Attributesコレクションを使用して、プログラムでこれを設定/設定解除できます。
MyTextBox.Attributes.Add("style", "display: none");