Создание групп в ListView (ListViewGroup)

Как я уже говорил несколько раз, управление списка является одним из самых использования при разработке приложений в Visual Basic. NET.

Сегодня я хочу показать способ получить больше от этого контроля, а также оставить гораздо более привлекательными, создавая группы и использование фонового изображения.

Например нам нужно: форма и списка. Должно выглядеть как на рисунке ниже:

Для отображения результатов нам нужны данные, а для этого я создал DataTable в памяти, и наполнил ее четыре записи. Поля Имя, Фамилия, телефон и место.

Я хочу показать в этом примере список людей, с их именами и телефонами сгруппированы по месту расположения. Первый анализ следующий код, если вы хотите попробовать, чтобы увидеть, как она работает, и тогда я расскажу несколько вещей.

 Dim DT As New DataTable
 dt.Columns.Add ("Name")
 dt.Columns.Add ("Name")
 dt.Columns.Add ("Телефон")
 dt.Columns.Add ("Город")

 Dim др. В DataRow = dt.NewRow

 д-р ("Name") = "John"
 д-р ("Name") = "Smith"
 д-р ("Телефон") = "4587-9546"
 д-р ("Location") = "Морон"
 dt.Rows.Add (DR)

 д-р = dt.NewRow
 д-р ("Name") = "Марсело"
 д-р ("Name") = "Роланд"
 д-р ("Телефон") = "7415-8945"
 д-р ("Location") = "Морон"
 dt.Rows.Add (DR)

 д-р = dt.NewRow

 д-р ("Name") = "Хавьер"
 д-р ("Name") = "Мартинес"
 д-р ("Телефон") = "4567-9654"
 д-р ("Location") = "Castelar"
 dt.Rows.Add (DR)

 д-р = dt.NewRow

 д-р ("Name") = "Эстеван"
 д-р ("Name") = "Васкес"
 д-р ("Телефон") = "9452-4515"
 д-р ("Location") = "Castelar"
 dt.Rows.Add (DR)

 ListView1.FullRowSelect = True
 ListView1.MultiSelect = False

 Dim As String = grupoActual String.Empty

 Dim г в качестве новой ListViewGroup

 Для каждого г как DataRow в dt.Rows

 Если г ("Город"). ToString <> Затем grupoActual
 Новые ListViewGroup г = (г ("Город"). ToString)
 grupoActual = г ("Город"). ToString
 ListView1.Groups.Add (г)
 End If

 Dim элемент в качестве новой ListViewItem ("")
 item.SubItems.Add (г ("Name"). ToString)
 item.SubItems.Add (Г ("Last Name"). ToString)
 item.SubItems.Add (г («Телефон»). ToString)
 item.Group = г

 ListView1.Items.Add (пункт)
 Следующий

Ну, первые строчки относятся к созданию DataTable и заполнение данных и не буду комментировать. Сконцентрируйтесь на том, как заполнить списка.

Сначала создайте для каждого цикла по всем записям в таблице у меня в памяти. Затем я создаю текстовый переменной (grupoActual), чтобы сохранить имя группы (последнее, что я добавил списка), и я также думаю, что объект ListViewGroup (г). Первое, что мне делать, чтобы встать на учет является назначение участка (который лежит в сфере я хочу работать в группе) ListView1 и сохранить эти данные в переменной grupoActual для будущих сравнений. Затем взимать ListViewItem как всегда в отличие от отметил, что этот пункт относится к группе "G", добавил пункт ListView1 и готово. Проходя через другие документы и выполнять сравнение только создать новую группу при изменении города.

Результат будет выглядеть так:

Теперь все выглядит лучше, я рекомендую создать изображение для фона. Я думаю, что я упоминал, что я предпочитаю Photoshop, но вы можете использовать любой графический редактор для создания JPG для использования в фоновом режиме. Обратите внимание, что цвета не должны быть очень сильными, потому что это difilcultará чтения данных.

Здесь я оставляю образ, который я использую в этом примере:

Чтобы его использовать, просто из свойств списка, найти BackgroundImage и добавьте изображение, как показано ниже:

и вы также должны изменить свойство Правда и готовы BackgroundImageTiled. Я покажу конечный результат:

Вот это, я надеюсь, что они служат.

11 Ответов на "Создание групп в ListView (ListViewGroup)"

  1. Bitacoras.com говорит:

    Информация Bitacoras.com ...

    Ставка в Bitacoras.com: Как я уже говорил несколько раз, управления списка является одним из самых использования при разработке приложения в Visual Basic Net.. Сегодня я хочу показать способ получить больше от этого контроля, а также Деж ...

  2. Цезарь сказал:

    Отличный пример другого типа использования списка.

    мия вопрос, и я искал везде, прежде чем спрашивать, как включить кластерных распечатать списка.

    спасибо

  3. Эмилио Рафаэль Гарсия Риос говорит:

    Эй, как насчет мой вопрос ...
    И, как это делает, чтобы ходить по группе списка на группы?

  4. анонимный говорит:

    Здравствуйте, я хотела бы знать, как сделать, чтобы удалить выбранный элемент списка.
    Спасибо.

  5. Алехандро говорит:

    это очень хороший пример, я ставлю на практике, но у меня есть проблема, например: мой группы пользователей модуля.
    Мой вопрос: Как я показываю второй группы?
    Например, в вашем примере вы разместите вы item.group = г
    Что делать, если я хочу, чтобы показать ч группу в колонке подпунктов?
    Кость показать мне пользователя (группы) по модулю (в другой группе), а затем все остальное.
    Я ценю Ваше время и наилучшими пожеланиями.

  6. христианская говорит:

    как я могу подключить списка с доступом ¿?
    Я показываю, что данные в каждом столбце BD

  7. Ли говорит:

    В последней строке = listView1.Items.Add (пункт) я получаю следующую ошибку:

    Невозможно добавить или вставить элемент "более чем в одном месте. Необходимо удалить его из текущего местоположения или клонировать его.
    Имя параметра: пункт.

    Я тестирования. Net 2008, потому что это ошибка?

  8. Федерико говорит:

    Извините, что я vb.NET зонд в 2008 году и не работает.

    • Елисей сказал:

      Федерико: Когда я сделал этот пост, примеров я сделал с помощью Visual Studio 2008 и они работают. Я советую вам попробовать еще раз обратить внимание на шаги.

      Удачи.

  9. Хорхе говорит:

    доброе утро, привет! хотелось бы знать, как группа клеток сделает списка, и этот контроль не слияние собственности. Ожидание делает мне объяснить.

    =)

  10. Карлос говорит:

    Привет хороший вклад сослужила мне хорошую службу,
    Но я знал или мог бы помочь мне разобраться в каждой группе для реализации проекта, я разработал через
    заранее через

Комментировать