- - PR -
TreeViewコントロールの初期化
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-09 16:06
いつもお世話になっております。
VB.NET(2003)で、Windows Formを作成中です。 コマンドボタンをクリックすると、 あるディレクトリ(D:\hoge)内に存在するファイルの一覧を、 TreeViewコントロールに表示するという内容なのですが、 一度コマンドボタンをクリックして内容表示させた後、 連続してボタンクリックした際、前回表示された内容にプラスして ディレクトリ内の一覧が付加して表示されてしまいます。 やりたい事は、ボタンクリックの度に、一旦表示しているTreeView コントロールの内容をクリアして再度ディレクトリ内の情報を 表示したいのですが、色々ヘルプ等調べながら試してみましたが、 うまくいきません。 ↓ trv_Dir.BeginUpdate() trv_Dir.Nodes.Clear() trv_Dir.Nodes.Add(New TreeNode("D:\hoge")) GetAllFiles(strcsvDir, "*.csv", files) intCnt = files.Count If intCnt <> 0 Then For i = 0 To intCnt - 1 trv_Dir.Nodes(0).Nodes.Add( _ New TreeNode(Path.GetFileName(files(i)))) Next trv_Dir.ExpandAll() trv_Dir.EndUpdate() Else MessageBox.Show("csvファイルがディレクトリ内に存在しません。", strAppTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) End If ↑ 何方かご教示・ご指導お願い申し上げます。 | ||||||||||||
|
投稿日時: 2004-11-09 16:35
Hasumiです。
を
ではどうですか。 #流れがわからなくなるので勘違いしていたコードを再投稿 [ メッセージ編集済み 編集者: Hasumi 編集日時 2004-11-09 17:22 ] | ||||||||||||
|
投稿日時: 2004-11-09 16:41
Hasumiさん、早速のご回答ありがとうございます。
試してみたのですが…TreeViewトップのD:\hogeは 消えたのですが、依然ボタンをクリックする度に ファイル一覧が付加されてしまいます。 大変申し訳ございません、ご指導の程お願い申し上げます。 | ||||||||||||
|
投稿日時: 2004-11-09 16:59
TreeView側は問題ないように思えます。
GetAllFilesが問題ないか、もう一度確認されてみては。 | ||||||||||||
|
投稿日時: 2004-11-09 17:13
Hasumiです。
先程はすみませんでした。 #勘違いにきずいて削除したけど遅かった。
ではどうなりますか。 私もGetAllFilesが怪しいと思います。 # C#と勘違いしていた個所を修正 [ メッセージ編集済み 編集者: Hasumi 編集日時 2004-11-09 17:23 ] [ メッセージ編集済み 編集者: Hasumi 編集日時 2004-11-09 17:42 ] | ||||||||||||
|
投稿日時: 2004-11-09 23:25
返事が大変遅くなり申し訳ございません。
まず、‘GetAllFiles’ですが、下記内容となっております。 ↓ Private Sub GetAllFiles(ByVal folder As String, _ ByVal searchPattern As String, ByRef files As ArrayList) Dim fs As String() = _ System.IO.Directory.GetFiles(folder, searchPattern) files.AddRange(fs) Dim ds As String() = System.IO.Directory.GetDirectories(folder) Dim d As String For Each d In ds GetAllFiles(d, searchPattern, files) Next d End Sub ↑ さて、Hasumiさんにご教示頂いたソースコードで試させて頂いた結果、 見事!意図する動き・結果が得られました。 お忙しい所、誠に有難うございました。 (GetAllFilesを使用した結果、何故正常に動作しなかったのかという 点については今後調査していきたいと考えます) | ||||||||||||
|
投稿日時: 2004-11-09 23:35
解決よかったですね。
うまくいかなかったのがなぜ、と突き詰めておくのもよいかと思います。 Files配列がbyRefですよね。 ボタンクリックごとにクリアされてますか? |
1