Windows.Forms: Was man bei ShowDialog beachten muss


Thomas Wölfer
Thomas Wölfer

04. Mai 2007


Man kommt meiner Ansicht nach nicht von selbst drauf, und in der Dokumentation wird es (meiner Ansicht nach) auch nicht erwähnt: Wenn man eine Form statt mit Show() [also nicht-modal] mit ShowDialog() [also modal] anzeigt, dann ist man selbst auch dafür verantwortlich, Dispose() für die Form aufzurufen, wenn der Dialog wieder geschlossen wurde. Tut man das nicht, dann hat man potenzielle Speicherlecks rsp. Speicher, der vom Garbage Collector nicht freigegeben werden kann.

Einfach Regel: Bei ShowDialog() hinterher immer auch Dispose() aufrufen, oder das ganze in ein using() verpacken.