Заполнение элементов в столбцах

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

........

listView1->Items[0]->SubItems->Add("444");

listView1->Items[0]->SubItems->Add("555");

listView1->Items[1]->SubItems->Add("666");

}

Выбор элемента таблицы:

Установить MultiSelect=false

Выбор мышкой только Items (11 22 33), но не SubItems (444 55 666)

Происхоит событие SelectedIndexChanged, но отсутствует в аргументах

информация какой индекс выбран.

listView1->FullRowSelect=true; // выбор всей строки

Выбор элемента не в первом столбце (SubItem) программируется

вручную.

Пример выбора – программирование события mouseup.

Items по прежнему встроенный выбор, Click мышкой приводит

к выбору клетки, которая окрашивается.

public ref class Form1: public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

int OldRow,OldCol,Col,Row; // выбранные строк и столбец

protected:

......

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

listView1->Columns->Add("Первая");

listView1->Columns->Add("Вторая");

listView1->Columns->Add("Третья");

listView1->Columns->Insert(1,"Четвертая");

listView1->Columns->RemoveAt(1);

listView1->Items->Add("11");

listView1->Items->Add("22");

listView1->Items->Add("33");

listView1->Items->Insert(1,"44");

listView1->Items->RemoveAt(1);

listView1->Items[0]->SubItems->Add("444");

listView1->Items[0]->SubItems->Add("555");

listView1->Items[1]->SubItems->Add("666");

OldRow=-1;

OldCol=-1;

}

Оклик на событие SelectedIndexChanged, когда выполняется переход

от одного выбранного Item к другому. Вызывается 2 раза.

private: System::Void listView1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e)

{

int k;

if(listView1->SelectedItems->Count>0)

{

k=listView1->FocusedItem->Index;

if(OldRow>=0 && OldCol>0)

{

listView1->Items[OldRow]->SubItems[OldCol]->BackColor

=Color::FromArgb(255,255,255);

listView1->Items[OldRow]->SubItems[OldCol]->ForeColor

=Color::FromArgb(0,0,0);

}

OldRow=Row;

OldCol=Col;

Row=k;

Col=0;

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: