Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Проводник по каталогам


Автор: bus 28.9.2006, 20:28
Хочу сделать проводник по каталогам жёсткого диска, беру для этого .NET компонент WebBrowser и с помощью Navigate хожу по каталогам. Теперь вопрос: как програмно настроить вид окна браузера: изменить вид значков (эскизы, таблица, ...), убрать левую вспомогательную панель, и тп?

Автор: KAFLAN 28.9.2006, 23:08
Настроить вид значков (так что бы это не повлияло на обычный проводник) в отличии от остального сделать черезвычайно сложно. Я бы порекомендовал реализовать проводник на ListView, там можно и кастомный иконки задать, и никаких панелей не будет.

Автор: bus 29.9.2006, 08:06
а нет ли у ListView какого-нибудь автоматизированного средства для заполнения его содержимым каталога? Если нет, то как это можно сделать?

Автор: Wanderer2019 29.9.2006, 09:15
странно.. а чего вдруг ListView...? 
Обычно для задач подобного типа используется TreeView. Вообще это довольно распространенная задача, описываемая в книгах по WinForms. 

Автор: bus 29.9.2006, 19:55
может кто подскажет ссылочку, где это описано, или сам опишет  smile 

Автор: reloni 29.9.2006, 22:03
Это конечно не идеальный вараант, но для примера подойдетsmile
Итак, у нас эсть трейвью под названием treeView1. Добавляем в него начальный узел, например диск Сsmile
Код

public Form1()
{
    InitializeComponent();
    treeView1.Nodes.Add("C:\\", "C:\\");
}


Делаем метод, добавляющий новые узлы:
Код

private void AddDirectories(TreeNode treeNode)
{
    string[] dirs = Directory.GetDirectories(treeNode.Name);
    foreach (string str in dirs)
    {
        treeNode.Nodes.Add(str, new DirectoryInfo(str).Name);
    }
}


И подписываемся на двойной щелчек по узлу:
Код

private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
    this.AddDirectories(e.Node);
    e.Node.Expand();
}


После двойного щелчка будем получать содержимое каждой директории.

Автор: mr.DUDA 30.9.2006, 11:25
Лучше не на двойной щелчок подписываться, а на BeforeExpand - тогда можно раскрывать узел клавишами или щелчком по крестику. Чтобы крестик появился, можно в каждый узел добавить один вложенный узел с пустым текстом, и при раскрытии проверять наличие такого узла - если есть, то удалять и заполнять директориями, а если нет - значит уже заполняли до этого.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)