ツリービューコントロールを使用して特定のフォームを表示しようとしています。そのノードのtag
値は、表示する必要のあるフォームのインスタンスに設定されています。DoubleClickイベントにあるコードは、フォームを初めて表示するとうまく機能しますが、その後、オブジェクトが破棄された例外が発生します。ご覧のとおり、タグをリセットして処理してみましたが、うまくいきませんでした。例外が発生してタグを正しいタイプのフォームにリセットするたびにswitchステートメントを実行せずにフォームを複数回表示できる方法はありますか?フォームの表示方法に似た、より良いものが欲しいのですが。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fm2 As New Form2()
Dim fm3 As New Form3()
TreeView1.Nodes(0).Tag = fm2
TreeView1.Nodes(1).Tag = fm3
End Sub
Private Sub TreeView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.DoubleClick
Try
CType(TreeView1.SelectedNode.Tag, Form).Show()
Catch odex As ObjectDisposedException
TreeView1.SelectedNode.Tag = New Form()
TreeView1_DoubleClick(sender, e)
Catch nrex As NullReferenceException
'No node selected, do nothing.
End Try
End Sub
End Class