我正在尝试为我的应用程序创建一个树视图浏览器,但却陷入了某个地方。
树视图无法显示。
代码:
System::IO::DirectoryInfo^ info = gcnew System::IO::DirectoryInfo(path);
System::IO::Directory^ dir;
if (dir->Exists(path))
{
try
{
array<System::IO::DirectoryInfo^>^ dirs = info->GetDirectories();
if (dirs->Length > 0)
{
for (int i = 0; i < dirs->Length; i++)
{
TreeNode^ node = treeView1->Nodes[0]->Nodes->Add(dirs[i]->Name);
node->ImageIndex = 1;
for (int j = 0; j < dirs[i]->GetFiles()->Length; j++)
{
if (dirs[i]->GetFiles()[j]->Exists)
{
TreeNode^ nodes = treeView1->Nodes[0]->Nodes[node->Index]->Nodes->Add(dirs[i]->GetFiles()[j]->Name);
nodes->ImageIndex = 2;
}
}
}
}
}
catch (Exception^ e)
{
MessageBox::Show(e->Message);
}
}
答案 0 :(得分:0)
您是否使用了splitcontainer并首先使用您的数据填写第一部分?
你是如何初始化新的treeview类的? 示例:
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
[DockingAttribute(DockingBehavior::Ask)]
public ref class TreeView : public Control
然后你可以实现treeview和imageview。 例如,对于Windows OS,ShGetFolderLocation是拉取文件位置的一种方法。
请记住,您必须填充视图并告诉系统显示它以供您查看。
或者只是转到:this earlier solution for the same issue
跟进nodemouse点击代码或您要查找的任何输入响应,例如展开或关闭,转到链接等。