1

なぜこれが起こるのか説明できますか?例外を再現する手順は次のとおりです。

  1. フォームに TextBox をドラッグ アンド ドロップします。フォーム上のボタンなど、その他のフォーカス可能なコントロールを追加します。
  2. 次のように、その TextBox に 2 つのイベント ハンドラーを追加します。

    private void textBox_GotFocus(object sender, EventArgs e){
      ((TextBox)sender).HideSelection = false; //<-- exception highlighted at here.
    }
    
    private void textBox_LostFocus(object sender, EventArgs e){
      ((TextBox)sender).HideSelection = true;
    }
    
  3. フォームを実行し、最初に textBox をクリックし、次にボタンをクリックしてから再度 textBox をクリックすると、「Win32Exception - ウィンドウ ハンドルの作成中にエラーが発生しました」という例外がスローされます。

コードは、textBox がフォーカスされてフォーカスを失ったときに、それに応じて HideSelection を変更するだけです。

アップデート

なぜそれほど揮発性なのかわかりません。別のプロジェクトを作成しましたが、問題は異なります。例外はありませんが、テキストボックスがちらつく無限ループがあります。フォームは応答していないようです。CPU使用率が消費されています。約17〜20%に。最後のデモがまだ開かれており、そのデモがまだWin32Exceptionスローされています。まったく手がかりではありません。2 つのプロジェクトのコードは同じですが、問題は異なります。

4

3 に答える 3