List View- Visual basic Net

11
Listview El control ListView de formularios Windows Forms muestra una lista de elementos con iconos. Puede utilizar una vista de lista para crear una interfaz de usuario similar al panel derecho del Explorador de Windows. El control tiene cuatro modos de vista: LargeIcon, SmallIcon, List y Details. El modo LargeIcon muestra iconos grandes junto al texto de los elementos; si el control es lo suficientemente grande, los elementos aparecen en varias columnas. El modo SmallIcon es igual, pero muestra iconos pequeños. El modo List muestra iconos pequeños, pero siempre en una sola columna. El modo Details muestra los elementos en varias columnas. La propiedad clave del control ListView es Items, que contiene los elementos que muestra el control. La propiedad SelectedItems contiene la colección de elementos seleccionados actualmente en el control. Si la propiedad MultiSelect se establece en true, el usuario puede seleccionar varios elementos, por ejemplo, para arrastrar y colocar en otro control varios elementos a la vez. Si la propiedad CheckBoxes se establece en true, el control ListView puede mostrar casillas de verificación junto a los elementos.La propiedad Activation determina el tipo de acción que debe realizar el usuario para activar los elementos de la lista: las opciones son Standard, OneClick y TwoClick. La activación OneClick necesita un solo clic para activar el elemento. La activación TwoClick requiere que el usuario haga doble clic para activar el elemento; un solo clic cambia el color del texto del elemento. La activación Standard requiere que el usuario haga doble clic para activar un elemento, pero la apariencia del elemento no cambia. Empleando la BDD BDventas(Clientes, Fac_cabe, Fac_deta,artículos) realizar el formulario: Listbox1

description

Empleando el control Listview,

Transcript of List View- Visual basic Net

Page 1: List View- Visual basic Net

Listview

El control ListView de formularios Windows Forms muestra una lista de elementos con iconos. Puede utilizar una vista de lista para crear una interfaz de usuario similar al panel derecho del Explorador de Windows. El control tiene cuatro modos de vista: LargeIcon, SmallIcon, List y Details. El modo LargeIcon muestra iconos grandes junto al texto de los elementos; si el control es lo suficientemente grande, los elementos aparecen en varias columnas. El modo SmallIcon es igual, pero muestra iconos pequeños. El modo List muestra iconos pequeños, pero siempre en una sola columna. El modo Details muestra los elementos en varias columnas.

La propiedad clave del control ListView es Items, que contiene los elementos que muestra el control. La propiedad

SelectedItems contiene la colección de elementos seleccionados actualmente en el control. Si la propiedad MultiSelect se establece en true, el usuario puede seleccionar varios elementos, por ejemplo, para arrastrar y colocar en otro control varios elementos a la vez. Si la propiedad CheckBoxes se establece en true, el control ListView puede mostrar casillas de verificación junto a los elementos.La propiedad Activation determina el tipo de acción que debe realizar el usuario para activar los elementos de la lista: las opciones son Standard, OneClick y TwoClick. La activación OneClick necesita un solo clic para activar el elemento. La activación TwoClick requiere que el usuario haga doble clic para activar el elemento; un solo clic cambia el color del texto del elemento. La activación Standard requiere que el usuario haga doble clic para activar un elemento, pero la apariencia del elemento no cambia.

Empleando la BDD BDventas(Clientes, Fac_cabe, Fac_deta,artículos) realizar el formulario:

Configurando el ListView

Codificacion del FormularioImports System.data

Listbox1

LISTVIEW1

Page 2: List View- Visual basic Net

Imports System.Data.SqlClientPublic Class Form1Dim cn As New SqlConnection("Server=localhost;Integrated Security=SSPI;database=ventas")Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load'Mostrar los empleadosDim da As New SqlDataAdapter("Select cod_emp,nombre from empleado", cn) Dim tbl As New DataTableda.Fill(tbl) ListBox1.DataSource = tblListBox1.DisplayMember = "nombre" ListBox1.ValueMember = "cod_emp" Call formatoListview1()End Sub

Sub formatoListview1()'dando formato al listviewWith ListView1.Items.Clear().View = View.Details.Columns.Add("Factura", 80, HorizontalAlignment.Left).Columns.Add("Sub Total", 80, HorizontalAlignment.Left).Columns.Add("Igv", 80, HorizontalAlignment.Left).Columns.Add("Total", 80, HorizontalAlignment.Left).GridLines = True.FullRowSelect = TrueEnd WithEnd Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles ListBox1.SelectedIndexChanged'Mostrar las 5 ordenes con mayor igvTry 'controlador de erroresDim codigo As String = ListBox1.SelectedValueDim cadsql As String = "Select top 5 Num_fact,sub_total,igv,total " & _" from facturas Where cod_emp=@codigo" Dim cmd As New SqlCommand(cadsql, cn) cmd.CommandType = CommandType.Text cn.Open()cmd.Parameters.Add("@codigo", SqlDbType.Char, 5).Value = codigoDim dr As SqlDataReader = cmd.ExecuteReaderIf dr.HasRows = True ThenListView1.Items.Clear()Dim LstItem As ListViewItem

While dr.ReadLstItem = ListView1.Items.Add(dr(0).ToString)

Page 3: List View- Visual basic Net

LstItem.SubItems.Add(dr(1).ToString) LstItem.SubItems.Add(dr(2).ToString) LstItem.SubItems.Add(dr(3).ToString)End WhileEnd Iflblcantreg.Text = ListView1.Items.CountCatch ex As ExceptionFinally cn.Close()End TryEnd Sub

Private Sub ListView1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.Click'Mostrando los datos de la columnaWith ListView1Dim factura As String = .Items.Item(.SelectedIndices(0)).TextDim subtotal As String = .Items.Item(.SelectedIndices(0)).SubItems(1).TextMessageBox.Show(factura & " - " & subtotal) End WithEnd SubEnd Class

Las Tablas de la base de datos Ventas

CREATE TABLE Empleado(cod_emp char(5) Not NULL ,nombre varchar(25) Not NULL ,cargo varchar(20) NULL ,

)

CREATE TABLE Facturas (num_fact char(6) Not Null,cod_emp char(5),cod_cli char(5),sub_total decimal(8,2),igv decimal(8,2),total decimal(8,2),fecha datetime,

)Llenar datos consistentes

AddHandler (Instrucción)

Page 4: List View- Visual basic Net

Asocia un evento a un controlador de eventos en tiempo de ejecución.

AddHandler event, AddressOf eventhandler

Partes

event Nombre del evento que se va a controlar.

Page 5: List View- Visual basic Net

Eventhandler Nombre del procedimiento que controlará el evento.

Comentarios

Las instrucciones AddHandler y RemoveHandler permiten iniciar y detener el controlador del evento en cualquier momento de la ejecución del programa.

La firma del procedimiento eventhandler debe coincidir con la firma del evento event.

La palabra clave Handles y la instrucción AddHandler permiten especificar que ciertos procedimientos controlen eventos determinados, pero hay diferencias entre ambos. La instrucción AddHandler conecta los procedimientos a los eventos en tiempo de ejecución. Utilice la palabra clave Handles al definir un procedimiento para especificar que controla un evento determinado. Para obtener más información, vea Handles.

En los eventos personalizados, la instrucción AddHandler invoca al descriptor de acceso AddHandler del evento. Para obtener más información sobre eventos personalizados, vea Event (Instrucción).

Ejemplo

Sub TestEvents()

Dim Obj As New Class1

' Associate an event handler with an event. AddHandler Obj.Ev_Event, AddressOf EventHandler

' Call the method to raise the event. Obj.CauseSomeEvent()

' Stop handling events.

RemoveHandler Obj.Ev_Event, AddressOf EventHandler

' This event will not be handled. Obj.CauseSomeEvent()

End Sub

Sub EventHandler()

' Handle the event. MsgBox("EventHandler caught event.")

End Sub

Public Class Class1

' Declare an event. Public Event Ev_Event() Sub CauseSomeEvent()

Page 6: List View- Visual basic Net

' Raise an event. RaiseEvent Ev_Event()

End Sub

End Class

RemoveHandler (Instrucción)

Quita la asociación entre un evento y un controlador de eventos.

RemoveHandler event, AddressOf eventhandler

Partes

event

Nombre del evento que se va a controlar.

eventhandler

Nombre del procedimiento que controla actualmente el evento.

Comentarios

Las instrucciones AddHandler y RemoveHandler permiten iniciar y detener el control del evento de un evento específico en cualquier momento de la ejecución del programa.

Para los eventos personalizados, la instrucción RemoveHandler llama al descriptor de acceso RemoveHandler del evento. Para obtener más información sobre eventos personalizados, vea Event (Instrucción).

Ejemplo

Sub TestEvents()

Dim Obj As New Class1

' Associate an event handler with an event. AddHandler Obj.Ev_Event, AddressOf EventHandler

' Call the method to raise the event. Obj.CauseSomeEvent()

' Stop handling events.

RemoveHandler Obj.Ev_Event, AddressOf EventHandler

' This event will not be handled. Obj.CauseSomeEvent()

End Sub

Sub EventHandler()

Page 7: List View- Visual basic Net

' Handle the event. MsgBox("EventHandler caught event.")

End Sub

Public Class Class1

' Declare an event. Public Event Ev_Event() Sub CauseSomeEvent()

' Raise an event. RaiseEvent Ev_Event()

End Sub

End Class

Veamos un ejemplo con el llenado de datos en un ComboBox, mediante el evento form1_load, y llamando a la vez al evento SelectedIndexChanged del ComboBox.

Al momento de llenar el ComboBox1 en el evento Form1_Load, usted evitara llamar al evento SelectedIndexChanged con la finalidad de mostrar datos erróneos, debido a que se esta asignando objetos y campos en sus propiedades.

Imports System.Data

Imports System.Data.Sqlclient

Public Class Form1

Dim cn As New SqlConnection("Server=localhost;Integrated Security=SSPI;database=NorthWind")

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

MyBase.Load

MostrarOrdenes()

End Sub

Sub MostrarOrdenes()

RemoveHandler ComboBox1.SelectedIndexChanged, _ AddressOf ComboBox1_SelectedIndexChanged

Dim da As New SqlDataAdapter("Select CustomerID,CompanyName From Customers", cn) Dim tbl As New DataTable

da.Fill(tbl)

Page 8: List View- Visual basic Net

ComboBox1.DataSource = tbl ComboBox1.DisplayMember = "CompanyName" ComboBox1.ValueMember = "CustomerID"

AddHandler ComboBox1.SelectedIndexChanged, _

AddressOf ComboBox1_SelectedIndexChanged

End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles ComboBox1.SelectedIndexChanged

Dim da As New SqlDataAdapter("Select OrderID From Orders Where CustomerID='" & ComboBox1.SelectedValue

& "'", cn)

Dim tbl As New DataTable da.Fill(tbl) ListBox1.DataSource = tbl

ListBox1.DisplayMember = "OrderID"

End Sub

End Class

Page 9: List View- Visual basic Net