VB.NETでAccessViolationException発生。DataGridViewが落ちる。|火消しに行って油を注ぐ火消しに行って油を注ぐ私の知りたいを解決するブログ。あとプログラミングのメモなど。生活ネタ転職スマホプライバシーポリシーお問い合わせHomeVB.NETVB.NETVB.NETでAccessViolationException発生。DataGridViewが落ちる。AccessViolationExceptionVB.NETのWindowsアプリケーション画面で、不可解な現象が発生しました。DataGridViewを使用しているFormを表示した後、他のアプリケーションをアクティブにしてしばらく経つと、裏でVB.NETのFormが落ちてしまうのです。不思議なのは毎回発生するわけではなく、タイミングによって起きたり起きなかったりします。イベントビューアでアプリケーションのログを見てみると、以下のようなエラーが記録されていました。ハンドルされない例外のため、プロセスが中止されました。例外情報:System.AccessViolationExceptionデバッグ実行で確認しても、落ちたり落ちなかったりします。落ちた場合の例外メッセージはイベントビューアに記録されているエラーと同じく、AccessViolationExceptionでした。ハンドルされませんでした。保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。AccessViolationException...嫌な感じがします。ドハマリして数日無駄にするパターン。処理を見直しても怪しいところは無いし、なにより確実な再現が出来ないので困りました。例外が発生する場合に共通している操作は、他のアプリケーションの裏にFormが移動した後に落ちるというところです。ToolTipが関係している?例外のStackTraceの中を見るとToolTipを経由している箇所がありました。m)ToolTip?Google神にお伺いしてみたところ、以下のサイトをご教授頂きました。現象は分かったので良かった。原因どうやらComctl32.dllのバグらしいという情報がありました。MicrosoftサポートページToolTipコントロールを表示する際に、内部的に使用されているComctl32.dllのバージョンが5.0だと例外が発生するそうです。Visualスタイルを有効にする」という設定にしなければなりません。実はこの現象が発生したシステムはVB6.0からアップグレードした資産で、VB6.0からアップグレードするとプロジェクトのプロパティの「アプリケーションフレームワークを有効にする」のチェックが外れます。そのため、Visualスタイルが無効となり、Comctl32.dllはバージョン5.0が使用されていたようです。この「アプリケーションフレームワークを有効にする」のチェックをオンに出来れば簡単なのですが、ボタンやグリッドの見た目が微妙に変わってしまうため、できればオンにしたくありません。これ以外の解決方法はDataGridViewのShowCellToolTipsプロパティをFalseに設定するしかないのですが、ToolTipが出ないのはちょっと困ります。他に方法を思いつかなかったので、以下のような処理をFormに追加しました。SubフォームがアクティブになったらActivatedイベントでDataGridViewのShowCellToolTipsプロパティをTrueに設定し、フォームが非アクティブになったらDeactivateイベントでDataGridViewのShowCellToolTipsプロパティをFalseに設定します。これで画面が落ちることは無くなりました。まとめVB6.0からVB.NETにマイグレーションしたシステムの場合は、上記の現象が当てはまるかもしれないので注意が必要です。Next>自己紹介ヤマチヨ時代を逆行するレガシーエンジニア。末端SIerでシステムエンジニア紛いの仕事をしております。年齢を重ねるごとに加速する日々の中で、感じた事、考えた事を記録していきたいと思います。@_yamacho_人気記事ハードオフ・オフハウスで実際に売れたものまとめ。売れるもの・売れないもの。Excelのサイズが肥大化して動作が重い原因はたぶんこれ家族で大阪から福岡に帰省するなら車が楽。ヤマト便がサイズの上限を設定!重量と大きさの制限で送れないものが増えた!料金の値上げも実施!独学で地方公務員試験を受けたので、その振り返りなど(社会人経験者枠)【VB.NET】ネットワーク上のフォルダにアクセスしてユーザー/パスワード認証のダイアログを表示する5年間敷きっぱなしのカーペットをコインランドリーで洗濯しました。どんなことが聞かれるのか。3Dマジックチェア」をプレゼント。10万円のマッサージチェアはどうで...電車の遅延、ショップの口コミ、何でもわかるTwitter呼子のイカ活き造りを食べに「お魚処玄海」に行って来ましたVB.NETでAccessViolationException発生。