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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TabControl и listview в циклах, TabControl и listview в циклах 
:(
    Опции темы
updaite
Дата 2.11.2013, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет есть плагины.
Со следующими индификаторами
1)Плагин:
public string PluginName { get { return "NamePlagin 1"; } }
public string PlugunCategory { get { return "Test_1"; } }
2)Плагин:
public string PluginName { get { return "NamePlagin 2"; } }
public string PlugunCategory { get { return "Test_1"; } }
3)Плагин:
public string PluginName { get { return "NamePlagin 3"; } }
public string PlugunCategory { get { return "Test_2"; } }
4)Плагин:
public string PluginName { get { return "NamePlagin 4"; } }
public string PlugunCategory { get { return "Test_2"; } }

Поле PlugunCategory категория PluginName имя.
Нужно проверить это все в циклах и сгруппировать на tabControl и liistview должно получиться как на картинке. (рис, 1)

Код реализации 
Код

int Incriment = 1;
            DirectoryCatalog m_catalog = new DirectoryCatalog("Plugin");
            CompositionContainer container = new CompositionContainer(m_catalog);
            container.ComposeParts(this);
            if (Plugins == null) return;
      
           foreach (var plugin in Plugins) // Цикл перебора плагинов 
                  {
                     if (tabControl1.TabPages.Cast<TabPage>().ToArray().Length == 0) // Проверяем если нету вкладки создаем
                      {
                          ListView Box = new ListView();
                          tabControl1.TabPages.Add(plugin.PlugunCategory);
                          Box.Parent = tabControl1.TabPages[0];
                          Box.Name = plugin.PlugunCategory;
                          Box.Top = 111;
                          Box.Show();
                          Box.Items.Add(plugin.PluginName);
                      }
                      else
                        {
                          for (int i = 0; i < tabControl1.TabPages.Count; i++) // Проверяем количество вкладок
                            {
                              for (int j = 0; j < tabControl1.TabPages[i].Controls.Count; j++)
                              {
                                  ListView lv = (ListView)tabControl1.TabPages[i].Controls[j];

                               /*Проверяем имя ListView если оно равно имени
                              индификатора то добавляем PluginName в него*/
                                  if (lv.Name == plugin.PlugunCategory) 
                                  {  
                                      lv.Items.Add(plugin.PluginName); // добавляем итем
                                  }
                 else
                {
                                      ListView Box = new ListView();
                                      tabControl1.TabPages.Add(plugin.PlugunCategory);
                                      Box.Parent = tabControl1.TabPages[Incriment];
                                      Box.Name = plugin.PlugunCategory;
                                      Box.Top = 111;
                                      Box.Show();
                      Box.Items.Add(plugin.PluginName);
                                      Incriment++;
                                   }
                                }    
                            }
                         }
                     }


Работает почти правильно, но создает лишние вкладки и добавляет лишние итемы в listview (рис, 2) мучаюсь уже долго не могу разобраться помогите.
Прикладываю проект на vs 2012 в нем сам проект и 4 плагина для теста.
user posted image
 user posted image

Это сообщение отредактировал(а) updaite - 2.11.2013, 15:19

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  WindowsFormsApplication1.rar 89,30 Kb
PM MAIL   Вверх
updaite
Дата 3.11.2013, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Аутуально
PM MAIL   Вверх
updaite
Дата 4.11.2013, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ап
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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