Colabora |
Explorador Grafico.Net[Utilizando el Control ImageList]
|
hOlaaa!!! AdictosNet jejeje aqui me tienen nuevamente y esta vez hablaremos sobre ....
El Control ImageListEste Objeto, Herramienta o Control ImageList, como quieras llamarlo Controla una Coleccion de Imagenes que suelen utilizar otros controles, como por ejemplo uhmmmmmm, el control ListView, El TreeView o el mismo ToolStrip.Objetivos de Este Articulo: Los Objetivos de este articulo son claros y consiste en que Aprendas a Utilizar Correctamente el Control ImageList y el Control TreeView, para ello diseñaremos una Aplicacion Windows Forms. Ala Cual añadiremos otros controles aparte del ImageList que son: • Una caja de texto TextBox al cual llamaremos: txtRuta • Un Control TreeView al Cual llamaremos: tvwDirectorios •Y Finalmente añadiremos tambien el control ListView al cual llamaremos: lvwArchivos Al Control lvwArchivos le agregaremos 4 Columnas, que son: •Nombre. •Tamaño. •Tipo. •Modificado. Detalle no Olvidar Agregar el Control ImageList, el cual es la Pieza Fundamental de este Articulo..jejeje solo te lo hacia recordar.. Asi Luce nuestra aplicacion en tiempo de diseño.. Para Empezar a Codificar Crearemos un Controlador de Excepciones en el Evento Load del Formulario, el cual nos servira para Manejar las Excepciones que Ocurran en el Transcurso del desarrollo de la Aplicacion. Dentro del Controlador de Errores declararemos variales a las cuales les haremos referencia con algunas Clases del Visual Studio 2005 como por ejemplo la Clase Environment, la funcion GetLogicalDrives, la funcion GetDirectories y muchas mas...tranquilo todo a paso lento.. Empezemos!!!Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load' Manejo de Excepciones (errores) Try Dim Indice As Integer 'Environment: Proporciona información acerca del entorno y la plataforma actual, y la forma de manipularlos.. Dim Drives As String() = Environment.GetLogicalDrives() 'GetLogicalDrives: Matriz de cadena en la que cada elemento contiene el nombre de una unidad lógica. ' Drives: Devuelve una colección de sólo lectura de todos los nombres de unidad disponibles. For Indice = 0 To Drives.Length - 1 Dim adicionaUnidad As New TreeNode adicionaUnidad.Text = Drives(Indice) ' Nodes: Obtiene una colección de objetos que representa los nodos raíz del control tvwDirectorios.Nodes.Add(adicionaUnidad) agregarDirectorios(adicionaUnidad) Next Indice ' Caso de error Catch ex As Exception End Try End Sub 'Seguidamente Crearemos una Funcion la cual llamaremos nodoActual Private Function nodoActual( ByVal node As TreeNode) As String If node.Parent Is Nothing Then Return node.Text Return System.IO.Path.Combine(NodoActual(node.Parent), node.Text) End Function 'Luego de crear la funcion crearemos un metodo o procedimiento llamado agregardirectorios.. Private Sub agregarDirectorios(ByVal node As TreeNode) ' Manejo de Excepciones Try Dim Directorio As New System.IO.DirectoryInfo(NodoActual(node)) Dim DirectorioActual As System.IO.DirectoryInfo() = _ Directorio.GetDirectories() Dim Indice As Integer For Indice = 0 To DirectorioActual.Length - 1 Dim name As String = DirectorioActual(Indice).Name If Not name.Equals(".") And Not name.Equals("..") Then node.Nodes.Add(New TreeNode(name)) End If Next Indice 'Caso de error Catch ex As Exception End Try End Sub 'Tambien crearemos un Procedimiento llamado agregarSUBdirectorios... Private Sub agregarSUBdirectorios(ByVal node As TreeNode) Dim Indice As Integer For Indice = 0 To node.Nodes.Count - 1 agregarDirectorios(node.Nodes(Indice)) Next Indice End Sub 'Despues Llenaremos esos Rollos de Archivos con el procedimiento llenarArchivos... Private Sub llenarArchivos(ByVal AsignaRuta As String) Dim Archivos(), NombreArchivo As String Dim InfoArchivo As System.IO.FileInfo Dim oListViewItem As ListViewItem Archivos = System.IO.Directory.GetFiles(AsignaRuta) ' Limpiamos el contenido de ListView de esta manera ' nos aseguramos de actualizarlo lvwArchivos.Items.Clear() For Each NombreArchivo In Archivos InfoArchivo = New System.IO.FileInfo(NombreArchivo) 'Recuperamos y mostramos el nombre de archivo oListViewItem = lvwArchivos.Items.Add(Microsoft.VisualBasic.Left _ (InfoArchivo.Name.ToString, Len(InfoArchivo.Name.ToString) - 4)) 'Mostramos la longitud del archivo en Bytes oListViewItem.SubItems.Add(InfoArchivo.Length.ToString & " Bytes") ' Mostramos la extensión (Tipo archivo) oListViewItem.SubItems.Add(InfoArchivo.Extension) ' Mostrar la última fecha fr modificación del archivo oListViewItem.SubItems.Add(InfoArchivo.LastAccessTime) Next txtRuta.Text = AsignaRuta End Sub ' Tambien Usaremos un nuevo Evento llamado AfterExpand El cual Tiene Lugar a Ejecutarse cuando se Expande un Nodo. Private Sub tvwDirectorios_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvwDirectorios.AfterExpand Dim nodeExpanding As TreeNode = CType(e.Node, TreeNode) agregarSUBdirectorios(nodeExpanding) End Sub 'Y para terminar este Articulo tambien haremos uso de otro evento llamado AfterSelect.. Private Sub tvwDirectorios_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs)Handles tvwDirectorios.AfterSelect ' Manejo de Excepciones Try Dim NodoTemporal As New TreeNode Dim RutaTemporal As String Dim RetornoPosicion As Integer Dim RutaCompleta As String NodoTemporal = e.Node.Parent Do While Not IsNothing(NodoTemporal) ' buscamos la cadena "\" en la variable NodoTemporal RetornoPosicion = InStr(NodoTemporal.Text,"\", CompareMethod.Text) If RetornoPosicion = 0 Then RutaTemporal = NodoTemporal.Text + _ "\" + RutaTemporal Else RutaTemporal = _ NodoTemporal.Text(+RutaTemporal) NodoTemporal = NodoTemporal.Parent Loop ' Llenamos los archivos segúng la ruta del archivo de texto. llenarArchivos(RutaTemporal + e.Node.Text) ' interceptamos en caso de error... Catch ex As Exception End Try End Sub Nuestra Aplicacion en Tiempo de Ejecucion se verias mas o menos asi.. Espero te halla sido de utilidad este Articulo..... nos veremos en la Proxima Entrega Nota: Todo el Codigo visto en este Articulo es Valido para las Versiones 2003 y 2005.. Saludos Quispe Flores Johnny B.
|