Internet エクスプローラー でオートコンプリートが有効になっている場合、TextBox コントロールの TextChanged イベントが発生しない可能性があります

警告

廃止され、サポート対象外となった Internet Explorer 11 デスクトップ アプリケーションは、特定のバージョンの Windows 10 で Microsoft Edge の更新プログラムを通じて完全に無効になります。 詳細については、「Internet Explorer 11 デスクトップ アプリの廃止に関する FAQ」をご覧ください。

この記事では、インターネット エクスプローラーでオートコンプリート機能が有効になっている場合に TextBox コントロールの TextChanged イベントが発生しない問題を解決するための回避策について説明します。

元の製品バージョン:インターネット エクスプローラー
元の KB 番号: 873198

現象

Microsoft Internet エクスプローラーでフォームのオートコンプリート機能を有効にし、Web アプリケーションの TextBox コントロールの AutoComplete ドロップダウン リストから任意のテキストを選択すると、TextBox コントロール内のテキストが変更されても、TextBox コントロールの TextChanged イベントは発生しません。

原因

この動作は、オートコンプリート機能を使用してドロップダウン リストからテキストを選択すると、インターネット エクスプローラーが TextBox コントロールの TextChanged イベントを発生できないために発生します。

回避策

この動作を回避するには、Web フォームのオートコンプリート機能を無効にします。 この機能を無効にするには、次の手順に従います。

  1. ソリューション エクスプローラーで、[WebForm1.aspx] を右クリックし、[Designerの表示] をクリックします。

  2. WebForm1.aspxの HTML ビューに切り替えます。

  3. 次のコードを見つけます。

    <form id="Form1" method="post" runat="server">
    
  4. 手順 3 で見たコードを次のコードに置き換えます。

    <form id="Form1" method="post" runat="server" autocomplete="off">
    

動作の再現手順

手順 1: フォームのオートコンプリート機能を有効にする

  1. Internet Explorer を起動します。

  2. [ツール] メニューの [インターネット オプション] をクリックします。 [インターネット オプション] ダイアログ ボックスが表示されます。

  3. [コンテンツ] タブで、[個人情報] の [オートコンプリート] をクリックします。 [ オートコンプリート設定] ダイアログ ボックスが表示されます。

  4. [オートコンプリートを使用する] で、[フォームのチェック] ボックスをクリックし、[OK] をクリックします

  5. [インターネット オプション] ダイアログ ボックスで、[OK] をクリックします。

手順 2: TextBox コントロールを含む Web アプリケーションを作成する

  1. Microsoft Visual Studio .NET を起動します。

  2. [ ファイル] メニューの [ 新規] をポイントし、[ プロジェクト] をクリックします。 [ 新しいプロジェクト] ダイアログ ボックスが表示されます。

  3. [プロジェクトの種類] の [Visual C# プロジェクト] をクリックし、[テンプレート] の下 ASP.NET [Web アプリケーション] をクリックし、[場所] ボックスに「」と入力http://localhost/MyTestAppinし、[OK] をクリックします

  4. ソリューション エクスプローラーで、[WebForm1.aspx] を右クリックし、[Designerの表示] をクリックします。

  5. [ 表示 ] メニューの [ ツールボックス] をクリックします。

  6. TextBox コントロールを Web フォームに追加します。 既定では、TextBox1 という名前の TextBox コントロールが作成されます。

  7. TextBox1 TextBox コントロールの [プロパティ ] ウィンドウで、 AutoPostBack プロパティを True に設定 します

  8. TextBox1 TextBox コントロールの [プロパティ ] ウィンドウで、[ イベント] をクリックし、[ TextChanged] をダブルクリックします。 TextBox1_TextChanged プロシージャは、WebForm1.aspx ファイルのコード ビューに追加されます。

  9. TextBox1_TextChanged プロシージャにブレークポイントを挿入します。

  10. [ ファイル ] メニューの [ すべて保存 ] をクリックして、すべてのファイルを保存します。

手順 3: Web アプリケーションをビルドしてデバッグする

  1. [ ビルド] メニューで、[ ソリューションのビルド] をクリックします。

  2. [ デバッグ ] メニューの [ 開始] をクリックします。 WebForm1 - Microsoft Internet エクスプローラー Web ページが表示されます。

  3. テキスト ボックスに 「text1」と入力し、Enter キーを押します。 デバッガーは、WebForm1.aspx ファイルのコード ビューの TextBox1_TextChanged プロシージャで停止していることがわかります。

  4. [ デバッグ ] メニューの [ 続行] をクリックします。

  5. WebForm1 - Microsoft Internet エクスプローラー Web ページのテキスト ボックスに「text2」と入力し、Enter キーを押します。 デバッガーは、WebForm1.aspx ファイルのコード ビューの TextBox1_TextChanged プロシージャでもう一度停止することがわかります。

  6. [ デバッグ ] メニューの [ 続行] をクリックします。

  7. WebForm1 - Microsoft Internet エクスプローラー Web ページのテキスト ボックスに「t」と入力します。 前に入力した単語のドロップダウン リストが表示されます。

  8. 下方向キーを使用して テキスト 1 を選択し、Enter キーを押します。

    TextBox1 TextBox コントロールの TextChanged イベントが発生しないことがわかります。

関連情報

詳細については、「 TextBox.AutoPostBack プロパティ」を参照してください。