Assembly: System.Windows.Forms (in system.windows.forms.dll)
Public Class ColumnHeaderCollection Implements IList, ICollection, IEnumerable
Dim instance As ColumnHeaderCollection
public class ColumnHeaderCollection : IList, ICollection, IEnumerable
public ref class ColumnHeaderCollection : IList, ICollection, IEnumerable
public class ColumnHeaderCollection implements IList, ICollection, IEnumerable
public class ColumnHeaderCollection implements IList, ICollection, IEnumerable
In una classe ListView.ColumnHeaderCollection vengono archiviate le intestazioni di colonna visualizzate nel controllo ListView quando la proprietà View è impostata su Details. Nella classe ListView.ColumnHeaderCollection vengono archiviati gli oggetti ColumnHeader che definiscono il testo da visualizzare per una colonna e il modo in cui l'intestazione di colonna viene visualizzata nel controllo ListView quando vengono visualizzate le colonne. Quando in un controllo ListView vengono visualizzate colonne, tutti gli elementi e i relativi elementi secondari vengono visualizzati all'interno delle rispettive colonne. Per informazioni su come specificare le colonne in cui devono essere visualizzati i dati degli elementi secondari, vedere la classe ListViewItem.ListViewSubItemCollection.
Sono disponibili diversi metodi che consentono di aggiungere all'insieme intestazioni di colonna. Il metodo Add consente di aggiungere all'insieme una singola intestazione di colonna. Per aggiungere più intestazioni di colonna creare una matrice di oggetti ColumnHeader e passarla al metodo AddRange. Per inserire un'intestazione di colonna in una posizione specifica dell'insieme è possibile utilizzare il metodo Insert. Per rimuovere intestazioni di colonna è possibile utilizzare il metodo Remove oppure, se si è a conoscenza della posizione dell'intestazione di colonna all'interno dell'insieme, il metodo RemoveAt. Il metodo Clear consente di rimuovere tutte le intestazioni di colonna dell'insieme contemporaneamente, mentre il metodo Remove consente di rimuovere una sola intestazione di colonna alla volta.
Oltre ai metodi e alle proprietà per l'aggiunta e la rimozione delle intestazioni di colonna, nella classe ListView.ColumnHeaderCollection sono disponibili metodi per individuare le intestazioni di colonna all'interno dell'insieme. Il metodo Contains consente di determinare se un'intestazione di colonna è un membro dell'insieme. Una volta stabilito che l'intestazione di colonna si trova nell'insieme è possibile utilizzare il metodo IndexOf per determinarne la posizione all'interno dell'insieme.
Nota |
|---|
| Quando la larghezza combinata di tutte le colonne supera i 32.768 pixel può verificarsi un comportamento imprevisto. |
Nell'esempio di codice riportato di seguito viene creato un form contenente un controllo ListView che consente di ordinare manualmente gli elementi facendo clic su una colonna nel controllo ListView. Viene definita una classe denominata ListViewItemComparer che implementa l'interfaccia System.Collections.IComparer per l'esecuzione del confronto relativo al controllo ListViewItem. Viene inoltre creata un'istanza di ListViewItemComparer, utilizzata per impostare la proprietà ListViewItemSorter del controllo ListView. Durante la chiamata al metodo Sort eseguita nel gestore eventi ColumnClick vengono utilizzati i metodi definiti in ListViewItemComparer per eseguire l'ordinamento degli elementi in base alla colonna su cui è stato fatto clic.
Imports System Imports System.Windows.Forms Imports System.Drawing Imports System.Collections Namespace ListViewSortFormNamespace Public Class ListViewSortForm Inherits Form Private listView1 As ListView Public Sub New() ' Create ListView items to add to the control. Dim listViewItem1 As New ListViewItem(New String() {"Banana", "a", "b", "c"}, -1, Color.Empty, Color.Yellow, Nothing) Dim listViewItem2 As New ListViewItem(New String() {"Cherry", "v", "g", "t"}, -1, Color.Empty, Color.Red, New Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular, GraphicsUnit.Point, CType(0, System.Byte))) Dim listViewItem3 As New ListViewItem(New String() {"Apple", "h", "j", "n"}, -1, Color.Empty, Color.Lime, Nothing) Dim listViewItem4 As New ListViewItem(New String() {"Pear", "y", "u", "i"}, -1, Color.Empty, Color.FromArgb(CType(192, System.Byte), CType(128, System.Byte), CType(156, System.Byte)), Nothing) 'Initialize the ListView control and add columns to it. Me.listView1 = New ListView ' Set the initial sorting type for the ListView. Me.listView1.Sorting = SortOrder.None ' Disable automatic sorting to enable manual sorting. Me.listView1.View = View.Details ' Add columns and set their text. Me.listView1.Columns.Add(New ColumnHeader) Me.listView1.Columns(0).Text = "Column 1" Me.listView1.Columns(0).Width = 100 listView1.Columns.Add(New ColumnHeader) listView1.Columns(1).Text = "Column 2" listView1.Columns.Add(New ColumnHeader) listView1.Columns(2).Text = "Column 3" listView1.Columns.Add(New ColumnHeader) listView1.Columns(3).Text = "Column 4" ' Suspend control logic until form is done configuring form. Me.SuspendLayout() ' Add Items to the ListView control. Me.listView1.Items.AddRange(New ListViewItem() {listViewItem1, listViewItem2, listViewItem3, listViewItem4}) ' Set the location and size of the ListView control. Me.listView1.Location = New Point(10, 10) Me.listView1.Name = "listView1" Me.listView1.Size = New Size(300, 100) Me.listView1.TabIndex = 0 ' Enable editing of the items in the ListView. Me.listView1.LabelEdit = True ' Connect the ListView.ColumnClick event to the ColumnClick event handler. AddHandler Me.listView1.ColumnClick, AddressOf ColumnClick ' Initialize the form. Me.ClientSize = New Size(400, 400) Me.Controls.AddRange(New Control() {Me.listView1}) Me.Name = "ListViewSortForm" Me.Text = "Sorted ListView Control" ' Resume layout of the form. Me.ResumeLayout(False) End Sub 'New ' ColumnClick event handler. Private Sub ColumnClick(ByVal o As Object, ByVal e As ColumnClickEventArgs) ' Set the ListViewItemSorter property to a new ListViewItemComparer ' object. Setting this property immediately sorts the ' ListView using the ListViewItemComparer object. Me.listView1.ListViewItemSorter = New ListViewItemComparer(e.Column) End Sub End Class ' Implements the manual sorting of items by columns. Class ListViewItemComparer Implements IComparer Private col As Integer Public Sub New() col = 0 End Sub Public Sub New(ByVal column As Integer) col = column End Sub Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _ Implements IComparer.Compare Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text) End Function End Class End Namespace
using System; using System.Windows.Forms; using System.Drawing; using System.Collections; namespace ListViewSortFormNamespace { public class ListViewSortForm : Form { private ListView listView1; public ListViewSortForm() { // Create ListView items to add to the control. ListViewItem listViewItem1 = new ListViewItem(new string[] {"Banana","a","b","c"}, -1, Color.Empty, Color.Yellow, null); ListViewItem listViewItem2 = new ListViewItem(new string[] {"Cherry","v","g","t"}, -1, Color.Empty, Color.Red, new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((System.Byte)(0)))); ListViewItem listViewItem3 = new ListViewItem(new string[] {"Apple","h","j","n"}, -1, Color.Empty, Color.Lime, null); ListViewItem listViewItem4 = new ListViewItem(new string[] {"Pear","y","u","i"}, -1, Color.Empty, Color.FromArgb(((System.Byte)(192)), ((System.Byte)(128)), ((System.Byte)(156))), null); //Initialize the ListView control and add columns to it. this.listView1 = new ListView(); // Set the initial sorting type for the ListView. this.listView1.Sorting = SortOrder.None; // Disable automatic sorting to enable manual sorting. this.listView1.View = View.Details; // Add columns and set their text. this.listView1.Columns.Add(new ColumnHeader()); this.listView1.Columns[0].Text = "Column 1"; this.listView1.Columns[0].Width = 100; listView1.Columns.Add(new ColumnHeader()); listView1.Columns[1].Text = "Column 2"; listView1.Columns.Add(new ColumnHeader()); listView1.Columns[2].Text = "Column 3"; listView1.Columns.Add(new ColumnHeader()); listView1.Columns[3].Text = "Column 4"; // Suspend control logic until form is done configuring form. this.SuspendLayout(); // Add Items to the ListView control. this.listView1.Items.AddRange(new ListViewItem[] {listViewItem1, listViewItem2, listViewItem3, listViewItem4}); // Set the location and size of the ListView control. this.listView1.Location = new Point(10, 10); this.listView1.Name = "listView1"; this.listView1.Size = new Size(300, 100); this.listView1.TabIndex = 0; // Enable editing of the items in the ListView. this.listView1.LabelEdit = true; // Connect the ListView.ColumnClick event to the ColumnClick event handler. this.listView1.ColumnClick += new ColumnClickEventHandler(ColumnClick); // Initialize the form. this.ClientSize = new Size(400, 400); this.Controls.AddRange(new Control[] {this.listView1}); this.Name = "ListViewSortForm"; this.Text = "Sorted ListView Control"; // Resume layout of the form. this.ResumeLayout(false); } // ColumnClick event handler. private void ColumnClick(object o, ColumnClickEventArgs e) { // Set the ListViewItemSorter property to a new ListViewItemComparer // object. Setting this property immediately sorts the // ListView using the ListViewItemComparer object. this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column); } [System.STAThreadAttribute()] public static void Main() { Application.Run(new ListViewSortForm()); } } // Implements the manual sorting of items by columns. class ListViewItemComparer : IComparer { private int col; public ListViewItemComparer() { col = 0; } public ListViewItemComparer(int column) { col = column; } public int Compare(object x, object y) { return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); } } }
#using <System.dll> #using <System.Drawing.dll> #using <System.Windows.Forms.dll> using namespace System; using namespace System::Windows::Forms; using namespace System::Drawing; using namespace System::Collections; // Implements the manual sorting of items by columns. ref class ListViewItemComparer: public IComparer { private: int col; public: ListViewItemComparer() { col = 0; } ListViewItemComparer( int column ) { col = column; } virtual int Compare( Object^ x, Object^ y ) { return String::Compare( (dynamic_cast<ListViewItem^>(x))->SubItems[ col ]->Text, (dynamic_cast<ListViewItem^>(y))->SubItems[ col ]->Text ); } }; public ref class ListViewSortForm: public Form { private: ListView^ listView1; public: ListViewSortForm() { // Create ListView items to add to the control. array<String^>^temp0 = {"Banana","a","b","c"}; ListViewItem^ listViewItem1 = gcnew ListViewItem( temp0,-1,Color::Empty,Color::Yellow,nullptr ); array<String^>^temp1 = {"Cherry","v","g","t"}; ListViewItem^ listViewItem2 = gcnew ListViewItem( temp1,-1,Color::Empty,Color::Red, gcnew System::Drawing::Font( "Microsoft Sans Serif",8.25F,FontStyle::Regular,GraphicsUnit::Point,0 ) ); array<String^>^temp2 = {"Apple","h","j","n"}; ListViewItem^ listViewItem3 = gcnew ListViewItem( temp2,-1,Color::Empty,Color::Lime,nullptr ); array<String^>^temp3 = {"Pear","y","u","i"}; ListViewItem^ listViewItem4 = gcnew ListViewItem( temp3,-1,Color::Empty,Color::FromArgb( 192, 128, 156 ),nullptr ); //Initialize the ListView control and add columns to it. this->listView1 = gcnew ListView; // Set the initial sorting type for the ListView. this->listView1->Sorting = SortOrder::None; // Disable automatic sorting to enable manual sorting. this->listView1->View = View::Details; // Add columns and set their text. this->listView1->Columns->Add( gcnew ColumnHeader ); this->listView1->Columns[ 0 ]->Text = "Column 1"; this->listView1->Columns[ 0 ]->Width = 100; listView1->Columns->Add( gcnew ColumnHeader ); listView1->Columns[ 1 ]->Text = "Column 2"; listView1->Columns->Add( gcnew ColumnHeader ); listView1->Columns[ 2 ]->Text = "Column 3"; listView1->Columns->Add( gcnew ColumnHeader ); listView1->Columns[ 3 ]->Text = "Column 4"; // Suspend control logic until form is done configuring form. this->SuspendLayout(); // Add Items to the ListView control. array<ListViewItem^>^temp4 = {listViewItem1,listViewItem2,listViewItem3,listViewItem4}; this->listView1->Items->AddRange( temp4 ); // Set the location and size of the ListView control. this->listView1->Location = Point(10,10); this->listView1->Name = "listView1"; this->listView1->Size = System::Drawing::Size( 300, 100 ); this->listView1->TabIndex = 0; // Enable editing of the items in the ListView. this->listView1->LabelEdit = true; // Connect the ListView::ColumnClick event to the ColumnClick event handler. this->listView1->ColumnClick += gcnew ColumnClickEventHandler( this, &ListViewSortForm::ColumnClick ); // Initialize the form. this->ClientSize = System::Drawing::Size( 400, 400 ); array<Control^>^temp5 = {this->listView1}; this->Controls->AddRange( temp5 ); this->Name = "ListViewSortForm"; this->Text = "Sorted ListView Control"; // Resume lay[Out] of* the form. this->ResumeLayout( false ); } private: // ColumnClick event handler. void ColumnClick( Object^ /*o*/, ColumnClickEventArgs^ e ) { // Set the ListViewItemSorter property to a new ListViewItemComparer // object. Setting this property immediately sorts the // ListView using the ListViewItemComparer object. this->listView1->ListViewItemSorter = gcnew ListViewItemComparer( e->Column ); } }; [System::STAThreadAttribute] int main() { Application::Run( gcnew ListViewSortForm ); }
package ListViewSortFormNamespace;
import System.*;
import System.Windows.Forms.*;
import System.Drawing.*;
import System.Collections.*;
public class ListViewSortForm extends Form
{
private ListView listView1;
public ListViewSortForm()
{
// Create ListView items to add to the control.
ListViewItem listViewItem1 = new ListViewItem(new String[] { "Banana",
"a", "b", "c" }, -1, Color.Empty, Color.get_Yellow(), null);
ListViewItem listViewItem2 = new ListViewItem(new String[] { "Cherry",
"v", "g", "t" }, -1, Color.Empty, Color.get_Red(),
new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular,
GraphicsUnit.Point, (ubyte)0));
ListViewItem listViewItem3 = new ListViewItem(new String[] { "Apple",
"h", "j", "n" }, -1, Color.Empty, Color.get_Lime(), null);
ListViewItem listViewItem4 = new ListViewItem(new String[] { "Pear",
"y", "u", "i" }, -1, Color.Empty, Color.FromArgb(192, 128, 156),
null);
//Initialize the ListView control and add columns to it.
this.listView1 = new ListView();
// Set the initial sorting type for the ListView.
this.listView1.set_Sorting(SortOrder.None);
// Disable automatic sorting to enable manual sorting.
this.listView1.set_View(View.Details);
// Add columns and set their text.
this.listView1.get_Columns().Add(new ColumnHeader());
this.listView1.get_Columns().get_Item(0).set_Text("Column 1");
this.listView1.get_Columns().get_Item(0).set_Width(100);
listView1.get_Columns().Add(new ColumnHeader());
listView1.get_Columns().get_Item(1).set_Text("Column 2");
listView1.get_Columns().Add(new ColumnHeader());
listView1.get_Columns().get_Item(2).set_Text("Column 3");
listView1.get_Columns().Add(new ColumnHeader());
listView1.get_Columns().get_Item(3).set_Text("Column 4");
// Suspend control logic until form is done configuring form.
this.SuspendLayout();
// Add Items to the ListView control.
this.listView1.get_Items().AddRange(new ListViewItem[] { listViewItem1,
listViewItem2, listViewItem3, listViewItem4 });
// Set the location and size of the ListView control.
this.listView1.set_Location(new Point(10, 10));
this.listView1.set_Name("listView1");
this.listView1.set_Size(new Size(300, 100));
this.listView1.set_TabIndex(0);
// Enable editing of the items in the ListView.
this.listView1.set_LabelEdit(true);
// Connect the ListView.ColumnClick event to the
// ColumnClick event handler.
this.listView1.add_ColumnClick(new ColumnClickEventHandler(ColumnClick));
// Initialize the form.
this.set_ClientSize(new Size(400, 400));
this.get_Controls().AddRange(new Control[] { this.listView1 });
this.set_Name("ListViewSortForm");
this.set_Text("Sorted ListView Control");
// Resume layout of the form.
this.ResumeLayout(false);
} //ListViewSortForm
// ColumnClick event handler.
private void ColumnClick(Object o, ColumnClickEventArgs e)
{
// Set the ListViewItemSorter property to a new ListViewItemComparer
// object. Setting this property immediately sorts the
// ListView using the ListViewItemComparer object.
this.listView1.set_ListViewItemSorter(
new ListViewItemComparer(e.get_Column()));
} //ColumnClick
/** @attribute System.STAThreadAttribute()
*/
public static void main(String[] args)
{
Application.Run(new ListViewSortForm());
} //main
} //ListViewSortForm
// Implements the manual sorting of items by columns.
class ListViewItemComparer implements IComparer
{
private int col;
public ListViewItemComparer()
{
col = 0;
} //ListViewItemComparer
public ListViewItemComparer(int column)
{
col = column;
} //ListViewItemComparer
public int Compare(Object x, Object y)
{
return String.Compare(
((ListViewItem)x).get_SubItems().get_Item(col).get_Text(),
((ListViewItem)y).get_SubItems().get_Item(col).get_Text());
} //Compare
} //ListViewItemComparer
System.Windows.Forms.ListView.ColumnHeaderCollection
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
Nota