Перейти к содержимому

Listview c как заполнить таблицу

  • автор:

Listview c как заполнить таблицу

Элемент ListView представляет список, но с более расширенными возможностями, чем ListBox. В ListView можно отображать сложные данные в различных стобцах, можно задавать данным изображения и пиктограммы.

ListViewItem

Все элементы, как и в других списковых визуальных компонентах, задаются с помощью свойства Items . Но в отличие от ListBox или ComboBox, если мы через панель Свойств откроем окно редактирования элементов ListView:

ListViewItem

Каждый отдельный элемент в ListView представляет объект ListViewItem . В окне редактирования элементов мы также можем добавлять и удалять элементы списка. Но кроме того, здесь также мы можем выполнить дополнительную настройку элементов с помощью следующих свойств:

  • BackColor : фоновый цвет элемента
  • Checked : если равно true, то данный элемент будет отмечен
  • Font : шрифт элемента
  • ForeColor : цвет шрифта
  • Text : текст элемента
  • ToolTipText : текст всплывающей подсказки, устанавливаемой для элемента
  • UseItemStyleForSubItems : если равно true, то стиль элемента будет также использоваться и для всех его подэлементов
  • Group : задает фоновый цвет элемента
  • ImageIndex : получает или задает индекс изображения, выводимого для данного элемента
  • ImageKey : получает или задает индекс изображения для данного элемента
  • StateImageIndex : получает или задает индекс изображения состояния (например установленного или снятого флажка, указывающего состояние элемента)
  • SubItems : коллекция подэлементов для данного элемента ListViewItem
  • Tag : тег элемента
  • IdentCount : устанавливает отступ от границ ListViewItem до используемого им изображения

Это только те свойства, которые мы можем задать в окне редактирования элементов ListView. Но потом все добавляемые элементы мы сможем увидеть в ListView:

Элемент ListView в Windows Forms

Чтобы добавить к элементам в ListView флажки, кроме задания свойства Checked у каждого отдельного элемента ListViewItem, надо также у свойства CheckBoxes у самого объекта ListView установить значение true .

Изображения элементов

Для добавления элементам изображений у ListView есть несколько свойств:

  • LargeImageList : задает список ImageList, изображения которого будут использоваться для крупных значков
  • SmallImageList : задает список ImageList, изображения которого будут использоваться для мелких значков
  • StateImageList : задает список ImageList, изображения которого будут использоваться для разных состояний

Пусть у нас есть некоторый ImageList с изображениями. Зададим этот ImageList для свойств LargeImageList и SmallImageList.

Тогда при добавлении новых элементов мы можем указать индекс изображение из ImageList, которое будет использоваться элементом:

Тогда в приложении вместе с текстыми метками элементов можно будет увидеть и изображения:

Типы отображений

С помощью свойства View у элемента ListView можно задать тип отображения, который принимает следующие значения:

  • Details : отображение в виде таблицы
  • LargeIcon : набор крупных значков (применяется по умолчанию)
  • List : список
  • SmallIcon : набор мелких значков
  • Tile : плитка

При отображении в виде таблицы также надо задать набор столбцов в свойстве Columns у ListView:

В данном случае я указал один столбец, у которого заголовок будет «Страна». Если у элементов ListViewItem были бы подэлементы, то можно было бы также задать и столбцы для подэлементов.

Кроме рассмотренных выше свойств ListView надо еще отметить некоторые. Свойство MultiSelect при установке в true позволяет выделять несколько строк в ListView одновременно.

Свойство Sorting позволяет задать режим сортировки в ListView. По умолчанию оно имеет значение None , но также можно установить сортировку по возрастанию (значение Ascending ) или сортировку по убыванию (значение Descending )

ListView. Практика

Выполним небольшую практическую задачу: выберем все названия файлов из какой-нибудь папки в ListView.

Получение всех файлов в ListView

Во-первых добавим на форму элементы TextBox (для ввода названия папки, файлы которой надо получить), Button (для запуска получения) и ListView.

Чтобы все файлы имели какое-нибудь изображение, добавим на форму ImageList с именем imageList1 и поместим в него какую-нибудь картинку.

У ListView для свойства View установим значение SmallIcon .

Все остальное сделаем в коде формы:

using System; using System.ComponentModel; using System.IO; using System.Windows.Forms; namespace HelloApp < public partial class Form1 : Form < public Form1() < InitializeComponent(); listView1.SmallImageList = imageList1; >private void button1_Click(object sender, EventArgs e) < string path = textBox1.Text; // получаем все файлы string[] files = Directory.GetFiles(path); // перебор полученных файлов foreach(string file in files) < ListViewItem lvi = new ListViewItem(); // установка названия файла lvi.Text = file.Remove(0, file.LastIndexOf('\\') + 1); lvi.ImageIndex = 0; // установка картинки для файла // добавляем элемент в ListView listView1.Items.Add(lvi); >> > >

Заполнить таблицу в ListView

Выполнить запрос к БД при нажатии на элемент в ListView и заполнить данными другой ListView
Подскажите пожалуйста как сделать в RadStudio, что бы при нажатии на одну строку выполнялся запрос.

Listview заполнить из memo
Добрый день, помогите с задачкой. Есть список в memo, допустим такой: Нужно заполнить им.

Как заполнить ListView?
Здравствуйте, помогите пожалуйста, разобраться с List view. Требуется заполнить первую колонку.

Заполнить listView из класса
У меня есть форма с элементом listView (в котором несколько ColumnHeader) и так же есть отдельный.

Практикантроп
4796 / 2694 / 519
Регистрация: 23.09.2011
Сообщений: 5,753

Лучший ответ

Сообщение было отмечено BRcr как решение

Решение

Если установить стиль ListView vsReport , то по такой приблизительно цепочке можно заполнить (с нуля). Хотя так, скорее всего, не поступают

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ListView1->Columns->Add(); ListView1->Columns->Items[0]->Caption = "First Col"; ListView1->Columns->Add(); ListView1->Columns->Items[1]->Caption = "Second Col"; ListView1->Columns->Add(); ListView1->Columns->Items[2]->Caption = "Third Col"; ListView1->Columns->Items[1]->Width = 96; ListView1->Columns->Items[2]->Width = 96; ListView1->Items->Add(); ListView1->Items->Item[0]->Caption = "один"; ListView1->Items->Add(); ListView1->Items->Item[1]->Caption = "два"; ListView1->Items->Item[0]->SubItems->Add("1111"); ListView1->Items->Item[0]->SubItems->Add("AAAA"); ListView1->Items->Item[1]->SubItems->Add("2222"); ListView1->Items->Item[1]->SubItems->Add("BBBB");

Добавлено через 14 минут
Заполнять строки (subitems) можно и по другому__

1 2 3
ListView1->Items->Add(); ListView1->Items->Item[0]->Caption = "строка 1"; ListView1->Items->Item[0]->SubItems->CommaText="aaaaa AAAA";

Listview c как заполнить таблицу

Этот элемент управления отображает информацию на множестве строк и столбцов. Он унаследован от класса ListBox , поэтому может вести себя простой список:

 LG Nexus 5X Huawei Nexus 6P iPhone 6S iPhone 6S Plus Аsus Zenphone 2 Microsoft Lumia 950  

Но чтобы создать более сложные по структуре данные используется свойство View . Это свойство принимает в качестве значения объект GridView, который управляет отображением данных. GridView определяет коллекцию определений столбцов — GridViewColumn , которое с помощью свойства Header определяет название столбца, а с помощью свойства DisplayMemberBinding можно определить привязку столбца к определенному свойству добавляемого в ListView объекта.

Компания

Допустим у нас в проекте определен класс Phone:

public class Phone < public string Title < get; set; >public string Company < get; set; >public int Price < get; set; >>

Создадим в xaml-коде коллекцию объектов Phone (в принципе это можно было бы сделать и в файле кода) и объявим привязку столбцов ListView к свойствам объектов Phone:

    Модель Компания Цена             

Заполнить таблицу в ListView — C++ Builder — Ответ 9125010

Лучший ответ

Сообщение было отмечено BRcr как решение

Решение

Если установить стиль ListView vsReport , то по такой приблизительно цепочке можно заполнить (с нуля). Хотя так, скорее всего, не поступают

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ListView1->Columns->Add(); ListView1->Columns->Items[0]->Caption = "First Col"; ListView1->Columns->Add(); ListView1->Columns->Items[1]->Caption = "Second Col"; ListView1->Columns->Add(); ListView1->Columns->Items[2]->Caption = "Third Col"; ListView1->Columns->Items[1]->Width = 96; ListView1->Columns->Items[2]->Width = 96; ListView1->Items->Add(); ListView1->Items->Item[0]->Caption = "один"; ListView1->Items->Add(); ListView1->Items->Item[1]->Caption = "два"; ListView1->Items->Item[0]->SubItems->Add("1111"); ListView1->Items->Item[0]->SubItems->Add("AAAA"); ListView1->Items->Item[1]->SubItems->Add("2222"); ListView1->Items->Item[1]->SubItems->Add("BBBB");

Добавлено через 14 минут
Заполнять строки (subitems) можно и по другому__

1 2 3
ListView1->Items->Add(); ListView1->Items->Item[0]->Caption = "строка 1"; ListView1->Items->Item[0]->SubItems->CommaText="aaaaa AAAA";

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *