1

フォルダーとファイルを含む階層リストボックスを作成しています。リストボックスに次のコード行を入力します。

  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

これが何の魔法か分かる人いますか?

前もってありがとう マティアス

4

1 に答える 1