次の方法で共有


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

警告

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

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

元の製品バージョン: Internet Explorer
元の KB 番号: 873198

症状

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

原因

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

回避策

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

  1. ソリューション エクスプローラーで、WebForm1.aspxを右クリックし、[ビュー デザイナー] をクリック

  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. コンテンツ タブで、[ユーザー情報] の下にある AutoComplete をクリックします。 [ AutoComplete の設定 ] ダイアログ ボックスが表示されます。

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

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

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

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

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

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

  4. ソリューション エクスプローラーで、WebForm1.aspxを右クリックし、[ビュー デザイナー] をクリック

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

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

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

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

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

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

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

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

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

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

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

  5. WebForm1 - Microsoft Internet Explorer Web ページのテキスト ボックスに「text2」と入力し、Enter キーを押します。 デバッガーは、WebForm1.aspx ファイルのコード ビューの TextBox1_TextChanged プロシージャで再び停止します。

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

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

  8. ↓キーを使用して text1 を選択し、Enter キーを押します。

    TextBox1 の TextBox コントロールで TextChanged イベントが発生しないことが確認できます。

関連情報

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