Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вытягивание нужной иконки для TreeVeiw 
:(
    Опции темы
nmc
Дата 13.11.2009, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 7.4.2009

Репутация: нет
Всего: -1



Доброго времени суток!
Код

ImageList  myImageList = new  ImageList();
 string [] logikalDick = Environment.GetLogicalDrives();    
 int i = 0;
 foreach (string item in logikalDick)
 {
                   myImageList.Images.Add(Image.FromHbitmap(SystemIcon./*функция_которая_вытягивает_картинку(string nameDisk)*/);
                   treeView1.ImageIndex  = i; //?????
                   i++;     
                   
 }
 treeView1.ImageList = myImageList;

Как теперь вытянут нужную картинку?
Так ведь просто перезаписываем treeView1.ImageIndex.

В  MSDN добавляем иконку без циклов, но число дисков неизвестно,как добавить и вытягивать картинки, в этом случае?
Код

ImageList myImageList = new ImageList();
    myImageList.Images.Add(Image.FromFile("Default.gif"));
    myImageList.Images.Add(Image.FromFile("SelectedDefault.gif"));
    myImageList.Images.Add(Image.FromFile("Root.gif"));
    myImageList.Images.Add(Image.FromFile("UnselectedCustomer.gif"));
    myImageList.Images.Add(Image.FromFile("SelectedCustomer.gif"));
    myImageList.Images.Add(Image.FromFile("UnselectedOrder.gif"));
    myImageList.Images.Add(Image.FromFile("SelectedOrder.gif"));
    
    // Assign the ImageList to the TreeView.
    myTreeView.ImageList = myImageList;
    
    // Set the TreeView control's default image and selected image indexes.
    myTreeView.ImageIndex = 0;
    myTreeView.SelectedImageIndex = 1;

    /* Set the index of image from the 
    ImageList for selected and unselected tree nodes.*/
    this.rootImageIndex = 2;
    this.selectedCustomerImageIndex = 3;
    this.unselectedCustomerImageIndex = 4;
    this.selectedOrderImageIndex = 5;
    this.unselectedOrderImageIndex = 6;
    
    // Create the root tree node.
    TreeNode rootNode = new TreeNode("CustomerList");
    rootNode.ImageIndex = rootImageIndex;
    rootNode.SelectedImageIndex = rootImageIndex;

    // Add a main root tree node.
    myTreeView.Nodes.Add(rootNode);


Это сообщение отредактировал(а) nmc - 13.11.2009, 23:47
PM   Вверх
Lunatic2009
Дата 14.11.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 1.7.2009

Репутация: 1
Всего: 3



Я так понимаю Вы хотите присвоить узлу соответствующую иконку:

Код

foreach (string logicalDrive in logicalDrives)
{
     TreeNode currentDrive = new TreeNode();
     ...
     treeImages.Images.Add(Icon);
     currentDrive.ImageIndex = treeImages.Images.Count - 1;
     ...
}


Это сообщение отредактировал(а) Lunatic2009 - 14.11.2009, 12:17
PM   Вверх
nmc
Дата 15.11.2009, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 7.4.2009

Репутация: нет
Всего: -1



Работает с ошибкой, соответствующию картинку вытягивает, но если кликнуть по любому диску(т.е. не по крестику,а по самому диска ) то картинка перерисовывается на первую то есть диск - А;если кликнуть еще раз то следующая иконка перерисовывается на флоппи, а кликнутая до этого перерисовывается на ту котороя была, т.е.обратно перерисовывается, возврат.  

Код

   foreach (string s in logikalDick)
           {
                   TreeNode disk = new TreeNode(s);
                   
                   myImageList.Images.Add(Image.FromHbitmap(SystemIcon.GetDrive(s));
                             
                   info = new DirectoryInfo(s);
                   disk.Tag = info;
                   disk.ImageKey = "disk";
                   
           disk.ImageIndex = myImageList.Images.Count - 1;               
                   treeView1.Nodes.Add(disk);
                   
                   disk.Nodes.Add("");
               }
           }
           treeView1.ImageList = myImageList;

обработчик NodeMouseClick пустой 
Код

 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
       {
          
       }


Это сообщение отредактировал(а) nmc - 15.11.2009, 20:49
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.