hOlaaa!!! AdictosNet jejeje aqui me tienen nuevamente y esta vez hablaremos sobre ....
El Control ImageList 
Este 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.
"No pienses en las Cosas que tienes, Piensa en las cosas que te hacen falta.."
Cualquier duda o Sugerencia te agradeceria muchisimo que me la hicieras saber a mi email:
[email protected]
Saludos Quispe Flores Johnny B.!!!
|