データソースにバインドされたテキストボックスがあります。テキストボックスの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");