4

データソースにバインドされたテキストボックスがあります。テキストボックスのTextChangedイベントは、別のテキストボックスを更新します。

問題は、最初のテキストボックスを表示したくないので、Visibleプロパティをfalseに設定したことです。

ただし、TextChangedイベントは発生しません。

フォームの読み込みを設定することで回避できますが、適切な解決策が必要Visible=Trueです。Left=-100000

誰か説明してもらえますか?

4

4 に答える 4

8

textbox.Visible = falseデザイナではなくFormLoadイベントで設定します。それはハンドルの作成と関係があります。構築中にテキストボックスが表示されない場合、ハンドルは作成されません。構築後にテキストボックスを非表示にすると、ハンドルが作成され、イベントが発生します。

MSDNのこのディスカッションを参照してください。

于 2010-06-24T13:41:53.787 に答える
3

受け入れられた回答の代替ソリューションは、LoadedでTextChangedリスナーを設定することです。これは、私にとってはまったく同じように機能し(少なくとも、Silverlightでは)、デザイナーのビューを適切に保ちます。

于 2011-03-14T13:57:37.110 に答える
0

それはどのタイプのデータソースですか?テキストボックスを使用して更新をリッスンする代わりに、直接使用できるイベントがある場合があります。

于 2010-06-22T09:06:12.977 に答える
-1

Visibleがfalseに等しい場合、Controlはレンダリングされません。したがって、イベントを発生させることはできません。

代わりに、をに設定styledisplay:noneます。Attributesコレクションを使用して、プログラムでこれを設定/設定解除できます。

MyTextBox.Attributes.Add("style", "display: none");
于 2010-06-22T08:23:30.753 に答える