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

 

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;

}

}