フォルダーとファイルを含む階層リストボックスを作成しています。リストボックスに次のコード行を入力します。
For i As Integer = 1 To General.GetBlocksFolder.count
If General.GetBlocksFolder.Item(i).Directory Then
frmMain.BlockList.Append(General.GetBlocksFolder.Item(i).DisplayName, True)
frmMain.BlockList.RowTag(i-1) = General.GetBlocksFolder.Item(i).GetSaveInfo(GetFolderItem(""))
End if
Next
General.GetBlocksFolder は、システム上のフォルダーに関する情報を保持するオブジェクトです。BlockList は、プログラム内の「ブロック」を表示するリストです。これは期待どおりに機能し、そのリスト内にフォルダーが表示されます。
次に、行を展開するときに、次のコードを使用します。
Dim ItemsAdded as integer
Dim CurrentFolder As FolderItem = General.GetBlocksFolder.GetRelative(me.RowTag(row))
For i As Integer = 1 To CurrentFolder.count
ItemsAdded = ItemsAdded +1
If CurrentFolder.Item(i).Directory Then
frmMain.BlockList.Append(CurrentFolder.Item(i).DisplayName, True)
frmMain.BlockList.RowTag(i+ItemsAdded) = CurrentFolder.Item(i).GetSaveInfo(GetFolderItem(""))
Else
frmMain.BlockList.Append(CurrentFolder.Item(i).DisplayName)
End if
Next
これはうまく機能しますが、3 レベルよりも深くなると、エラーが発生します。「CurrentRow」での nilObjectException
これが何の魔法か分かる人いますか?
前もってありがとう マティアス