|
分類:[VB.NET (Windows)]
開発環境は以下の通りです。
WindowsXPSP2
.NETFramework1.1SP1
VisualStudio2003
VB.NET
Form1(業務メニュー画面)のButtonを押すと
MainManuを持つForm2(業務画面)が表示される、というアプリケーションを作りました。
ぱっと見には問題ないのですが、利用者から
「しばらく使っていると動きが不安定になり、その後システムエラーを吐いて落ちる」という連絡を受け
プロファイラにかけてみたところ、Form2を開く度にインスタンスが解放されずに溜まっていく事を確認しました。
(Form2を閉じても解放されない)
上記の現象が再現するまでコードを削っていったところ
Form2にMainMenuを持たせると現象が発生するようです。
そこで質問なのですが、アプリケーションの子画面にMainMenuを持たせた時に
正しく解放されるようにする方法はありませんか?
(Button等の他のコントロールであれば、Formを閉じたときに自動的に解放されるので
同じようにできればいいんですが…)
以下、コードの抜粋です。
Public Class Form1
Inherits System.Windows.Forms.Form
' デザイナ生成部分省略
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f2 As New Form2
f2.Show()
End Sub
End Class
Public Class Form2
Inherits System.Windows.Forms.Form
' デザイナ生成部分省略(MainMenuとMenuItemのみ)
End Class
|