Базовые компоненты. Компонент ListView

   
На этом шаге мы рассмотрим назначение, основные свойства и пример использования этого компонента.

   
Компонент ListView (рисунок 1) предназначен для наглядного представления списков.


Рис.1. Компонент ListView

   
Свойства компонента приведены в таблице 1.

Таблица 1. Свойства компонента ListView

СвойствоОписание
ColumnsКоллекция элементов columnHeader - столбцы, в которых отображается содержимое компонентов элементов списка. Уточняющее
свойство Text задает текст в заголовке столбца, свойство Width - ширину столбца
ItemsЭлементы списка. Коллекция элементов Items определяет содержимое первого столбца. Содержимое остальных столбцов определяется
значением элементов коллекции SubItems соответствующего элемента Items
Items.CountКоличество элементов списка
SortingЗадает правило сортировки элементов списка: None - без сортировки (элементы списка отображаются в том порядке, в котором список был сформирован); Ascending - по возрастанию; Descending - по убыванию
MultiSelectОпределяет режим выбора элементов списка: True - можно выбрать несколько элементов; False - только один элемент. Чтобы
выбрать несколько элементов, надо сделать щелчок на нужных элементах списка при нажатой клавише Ctrl, или выделить диапазон, щелкнув при нажатой клавише Shift на первом и последнем элементе диапазона
ScrollAbleПризнак, позволяющий в случае необходимости отображать полосы прокрутки

   
Программа "Финансовый калькулятор" (ее форма приведена на рисунке 2) демонстрирует использование компонента ListView.


Рис.2. Форма программы "Финансовый калькулятор"

   
Программа позволяет рассчитать платежи по кредиту (равными долями с начислением процента на текущий остаток долга). Значения свойств компонента
ListView приведены в таблице 2.

Таблица 2. Значения свойств компонента ListView

КомпонентЗначение
ViewDetails
Colunns[0].TextМесяц
Columns[0].Width50
Colunns[1].TextДолг
Columns[1].Width80
Colunns[2].TextПроцент
Columns[2].Width80
Colunns[3].TextПлатеж
Columns[3].Width80

   
Список (график платежей по кредиту) формирует функция обработки события Click, возникающего при щелчке на кнопке OK. Она и конструктор
формы, который выполняет настройку компонента ListView, приведены ниже.

// конструктор формы
Form1(void)
{
	InitializeComponent();
	//
	//TODO: добавьте код конструктора
	//
	// настройка listView1 - увеличить ширину компонента
	// на ширину вертикальной полосы прокрутки
	int w = 0;
	for (int i=0; i < listView1->Columns->Count; i++)
		w += listView1->Columns[i]->Width;
	if (listView1->BorderStyle == BorderStyle::Fixed3D)
		w +=4;
	listView1->Width = w + 17;
	listView1->FullRowSelect = true;
}
.   .   .   .   .
// щелчок на кнопке OK
private: System::Void button1_Click(System::Object^  sender, 
         System::EventArgs^  e) {
	float value; // сумма кредита
	int period; // срок
	float rate; // процентная ставка
	int month; // месяц платежа
	float debt; // долг на начало текущего месяца
	float interest; // плата за кредит (проценты на долг)
	float paying; // сумма платежа
	float suminterest; // общая плата за кредит

	// сумма
	value = System::Convert::ToSingle(textBox1->Text);
	// срок
	period = System::Convert::ToInt32(textBox2->Text);
	// процентная ставка
	rate = System::Convert::ToSingle(textBox3->Text);
	month = 1;
	debt = value; // долг на начало первого месяца
	suminterest = 0;	

	// расчет для каждого месяца
	for (int i = 0; i < period; i++)
	{
		interest = debt * (rate/12/100);
		suminterest += interest;
		paying = value/period + interest;
		// добавить в listView1 элемент -
		// строку (данные в первый столбец)
		listView1->Items->Add(month.ToString());
		// добавить в добавленную строку подэлементы -
		// данные во второй, третий и четвертый столбцы
		listView1->Items[i]->SubItems->Add(debt.ToString("c"));
		listView1->Items[i]->SubItems->Add(interest.ToString("c"));
		listView1->Items[i]->SubItems->Add(paying.ToString("c"));
		month++;
		debt = debt - value/period;
	}
}

Архив проекта можно взять здесь.

   
Пример работы программы приведен на рисунке 3.


Рис.3. Программа "Финансовый калькулятор"

   
На следующем шаге мы рассмотрим компонент ImageList.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий