Hola, necesito agregar a un listview la funcionalidad de ordenamiento . Ya
consulte este articulo
http://msdn.microsoft.com/library/d...ttopic.asp
pero yo no quiero tener el código en el form, lo que quiero es crear un
componente que extienda la clase listview y que este haga todo el trabajo
pero me está dando dos problemas:
1. En la linea this.ColumnClick+=new ColumnClickEventHandler(ColumnClick);
me da ... denotes a 'method' which is not valid in the given context.
2. Si cambio la linea por this.ColumnClick+=new
ColumnClickEventHandler(ColumnClick2); notece que se le agregó un dos al
nombre del evento compila bien pero el codigo dentro de ColumnClick2 no se
ejecuta.
Gracias x su ayuda.
CÓDIGO COMPLETO:
using System;
using System.Collections;
using System.Drawing;
using System.Windows.Forms;
using System.Globalization;
using System.Runtime.InteropServices;
namespace cl_Mantenimientos.CustomControl
{
public class CustomListView : System.Windows.Forms.ListView
{
private System.ComponentModel.Container components = null;
public CustomListView(System.ComponentModel.IContainer container)
{
container.Add(this);
InitializeComponent();
}
public CustomListView()
{
InitializeComponent();
this.Sorting =SortOrder.None;
this.View=View.Details;
this.ColumnClick+=new ColumnClickEventHandler(ColumnClick2);
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
private void ColumnClick2(object o, ColumnClickEventArgs e)
{
this.ListViewItemSorter = new ListViewItemComparer(e.Column);
MessageBox.Show ("entró");
}
}
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);
}
}
}
Leer las respuestas