2011-10-18 10 views
1

VS2005で.NET 2.0 Winformアプリケーションビルドを.NET 3.5 SP1にアップグレードしました。 VS 2008でビルドこのDataGridViewは、まだUserPreferenceChangedEventHandlerによって参照されていますか?

.NET 2.0では、アプリケーションがUserPreferenceChangedEventHandlerによって参照されたToolStripControlによってメモリリークを起こしました。

.NET 3.5にアップグレードすると問題が解決しました。私はまだDataGridViewsに問題があります。

これらは、UserPreferenceChangedEventHandlerによっても参照されます。

DataGridViewには、ガベージコレクタによってリサイクルされていないフォームが含まれないようにする一般的な問題がいくつかありますか?あなたがDispose()を呼び出す必要がありIDisposableを実装何のために

Instance Retention Graph

+0

参照http://stackoverflow.com/questions/1137071/what-is-userpreferencechangedeventhandler-in-c- sharp-winform-applications – stuartd

+0

@Stuart結局、あなたが示唆したのはそれでした。コントロールが取り除かれ、処分されませんでした。これは、DataGridViewを含むTabPageでした。ある時点で、Tab.TabPages.RemoveAt(1)が呼び出されました。 –

答えて

2

DataGridViewはこれらのうちの1つです...あなたが言及した静的イベントハンドラの登録を解除することを確実にします...

+0

フォーム上にDataGridViewがある場合、DateGridViewのDisposeを呼び出すためのフォームの適切なイベントは何ですか? –

+0

何らかの理由で私は実際にフォームのDataGridViewの1つを破棄しなければなりませんでした。 –

関連する問題