una aplicacion en 3 capas
Post on 12-Jun-2015
7.684 Views
Preview:
DESCRIPTION
TRANSCRIPT
http://www.desarrolladoras.com - info@desarrolladoras.com
Desarrollo de una aplicaciónDesarrollo de una aplicaciónen tres capasen tres capas
con interfase Cliente Windows,con interfase Cliente Windows,uso de Data Access A. Blocks, uso de Data Access A. Blocks,
DataSets tipadosDataSets tipadosy ...y ...
http://www.desarrolladoras.com - info@desarrolladoras.com
otras yerbas…otras yerbas…
por Vilma Hinterwimmerpor Vilma Hinterwimmer
vilmahinter@desarrolladoras.comvilmahinter@desarrolladoras.com
por Vilma Hinterwimmerpor Vilma Hinterwimmer
vilmahinter@desarrolladoras.comvilmahinter@desarrolladoras.com
En el día de la Tradición…En el día de la Tradición…¿nos darán un mate al menos …?¿nos darán un mate al menos …?
Inspirada en la Aplicación Pachacamac de Daniel Seara.
Gracias Daniel por enseñarnos tanto!
http://www.desarrolladoras.com - info@desarrolladoras.com
Temas a tratar.... Temas a tratar.... si llegamos a tiempo!si llegamos a tiempo!
• Identificando las capas y los proyectos
• Creando la solución y los proyectos
• DataSet tipados
• Donde almacenamos la cadena de conexión
• Usando el Data Access Application Blocks
http://www.desarrolladoras.com - info@desarrolladoras.com
…….mas temas.mas temas
• La Clase Entidad y sus derivadas
• Herencia de Formularios
• Armado de un formulario tipo Outlook Express
• Principales propiedades, métodos y eventos de algunos controles
http://www.desarrolladoras.com - info@desarrolladoras.com
La AplicaciónLa Aplicación
http://www.desarrolladoras.com - info@desarrolladoras.com
Cliente
Webo
Windows
Negocio
Reglasy
Entidades
Datos
DAAB
Identificando las capasIdentificando las capas
Usuario Repositorio de DatosAplicación
http://www.desarrolladoras.com - info@desarrolladoras.com
Negocio
Reglas de negocio
Entidades
Clases cuyos métodos implementan las reglas de negocio globales
Clases bases y sus heredades que definen los objetos a utilizar en la aplicación: Cliente, Proveedor, Factura, etc.
CapasCapas Cliente
Interfaz gráfica con el Usuario, puede ser Web o Windows
Datos
Acceso a repositorios de Datos directo o a través del DAAB
http://www.desarrolladoras.com - info@desarrolladoras.com
Creando la solución y los proyectosCreando la solución y los proyectos
Cliente Negocio Datos
• Creamos una Solución en blanco
• Agregamos los Proyectos:
Nombre del proyecto Tipo de proyecto
Alumnos Aplicación para Windows AluNegocio Biblioteca de Clases
AluDatos Biblioteca de ClasesAluGlobal Biblioteca de ClasesData Access Application Block Existente
http://www.desarrolladoras.com - info@desarrolladoras.com
Relación entre las capas y los proyectosRelación entre las capas y los proyectos
Cliente
Negocio
Cliente Negocio Datos
ALUMNOS
ALU
NEGOCIO
ALUGLOBAL
Proyecto Capa Referencias entre proyectos
DAAB
ALU
DATOS
APLICACION
http://www.desarrolladoras.com - info@desarrolladoras.com
Capa Capa dede
DatosDatos
http://www.desarrolladoras.com - info@desarrolladoras.com
DataSets tipadosDataSets tipados
La difícil tarea de crear DataSets tipados
en tan solo 4 Pasos...
http://www.desarrolladoras.com - info@desarrolladoras.com
1. Agregar un Archivo DataSet.xsd al proyecto
http://www.desarrolladoras.com - info@desarrolladoras.com
2.Agregar una conexión a datos en el Explorador de Servidores
http://www.desarrolladoras.com - info@desarrolladoras.com
Dos pasos mas Dos pasos mas para llegar a tener...para llegar a tener...
¡Un DataSet Tipado!¡Un DataSet Tipado!
http://www.desarrolladoras.com - info@desarrolladoras.com
3.Agregar la definición de la tabla al DataSet tipado ( drag and drop – arrastrar y soltar )
http://www.desarrolladoras.com - info@desarrolladoras.com
4.Generar la clase (Generar conjunto de datos)
y..... LISTO!!!!!y..... LISTO!!!!!
http://www.desarrolladoras.com - info@desarrolladoras.com
Este es nuestro DataSet tipadoEste es nuestro DataSet tipado
Un archivo .vb que contiene una clase...
la escribió Visual Studio por nosotros...
y ahora la podemos usar....
http://www.desarrolladoras.com - info@desarrolladoras.com
y...y...
¿Para que sirve¿Para que sirve un Dataset Tipado? un Dataset Tipado?
Para facilitarnos...Para facilitarnos...
¡LA VIDA!¡LA VIDA!
http://www.desarrolladoras.com - info@desarrolladoras.com
Escribiendo código Escribiendo código con uncon un
DataSet tipado DataSet tipado
http://www.desarrolladoras.com - info@desarrolladoras.com
Tabla o Procedimiento Almacenado
TCliente
Nombre del Campo
Tipo del Campo
Nombre varchar
Direccion varchar
Saldo decimal
Clave varbinary
Sucursal smallint
La definición del dataset ahora será
Dim dstCliente As New dsCliente
La tabla será dstCliente.TCliente
A los campos de la fila n los llamamos:
dstCliente.TCliente(n).NombredstCliente.TCliente(n).DirecciondstCliente.TCliente(n).SaldodstCliente.TCliente(n).ClavedstCliente.TCliente(n).Sucursal
http://www.desarrolladoras.com - info@desarrolladoras.com
donde antes escribíamos…
ahora podemos a escribir…..
donde antes escribíamos…
ahora podemos a escribir…..
ComboBox1.DataSource = dstCliente.Tables( _ “TCliente”)
ComboBox1.DataSource = dstCliente.TCliente
txtnombre.Text = dstCliente.Tables( _ “TCliente”).Rows(n).Item(0).ToString
txtnombre.Text = dstCliente.TCliente(n).Nombre
http://www.desarrolladoras.com - info@desarrolladoras.com
¿Donde guardamos la ¿Donde guardamos la cadena de conexión?cadena de conexión?
http://www.desarrolladoras.com - info@desarrolladoras.com
Almacenaremos la cadena de conexión Almacenaremos la cadena de conexión en el archivo de configuraciónen el archivo de configuración
de la Aplicaciónde la Aplicación
¿A que proyecto lo agregamos?
Al proyecto...
ALUMNOS
http://www.desarrolladoras.com - info@desarrolladoras.com
Agregamos un archivo App.Config Agregamos un archivo App.Config al Proyecto Alumnos (Capa Cliente)al Proyecto Alumnos (Capa Cliente)
http://www.desarrolladoras.com - info@desarrolladoras.com
Agregamos la clave y el valor de la cadena de Agregamos la clave y el valor de la cadena de conexión al archivo de configuraciónconexión al archivo de configuración
<appSettings>
<add key=“StrConn“
value="server=MiServidor;database=DB
;trusted_connection=true"/>
</appSettings>
http://www.desarrolladoras.com - info@desarrolladoras.com
Así se verá en el Visual Studio nuestroAsí se verá en el Visual Studio nuestro archivo de configuraciónarchivo de configuración
Habría que encriptar la cadena de configuración para guardarla en el Archivo de Configuración.
Lo dejaremos para el próximo evento...
http://www.desarrolladoras.com - info@desarrolladoras.com
Accedemos al valor desde el códigoAccedemos al valor desde el código
Dim strconn as String = _
Configuration.ConfigurationSettings.AppSettings( _
“StrConn")
http://www.desarrolladoras.com - info@desarrolladoras.com
Data AccessData AccessApplication BlocksApplication Blocks
http://www.desarrolladoras.com - info@desarrolladoras.com
La clase y los métodos La clase y los métodos principalesprincipales
Clase SqlHelperClase SqlHelper
Métodos Métodos
ExecuteReader
ExecuteNonQuery
ExecuteDataset
FillDataset
http://www.desarrolladoras.com - info@desarrolladoras.com
ExecuteReaderExecuteReader
Devuelve un SQLDataReader con el cual accedemos a las filas
ExecuteReader(ByVal connectionString As String, _ ByVal commandType As CommandType, _ ByVal commandText As String, _ ByVal ParamArray commandParameters() As SqlParameter)
ExecuteNonQueryExecuteNonQuery
Devuelve el numero de filas afectadas
ExecuteNonQuery(ByVal connectionString As String, _ ByVal commandType As CommandType,
ByVal commandText As String, _ ByVal ParamArray commandParameters() As SqlParameter)
http://www.desarrolladoras.com - info@desarrolladoras.com
ExecuteDatasetExecuteDataset
Devuelve un DataSet
ExecuteDataset(ByVal connectionString As String, _ ByVal commandType As CommandType, _ ByVal commandText As String, _ ByVal ParamArray commandParameters() As SqlParameter)
FillDatasetFillDataset
Llena de datos un DataSet que le pasamos como argumento, no devuelve ningún valor
FillDataset(connectionString As String, commandType As CommandType, _ commandText As String, _ dataSet As DataSet, _ tableNames() As String, _ ByVal ParamArray commandParameters() As SqlParameter)
http://www.desarrolladoras.com - info@desarrolladoras.com
EjemplosEjemplos
ExecuteReaderExecuteReader
Imports Microsoft.ApplicationBlocks.Data.SqlHelper
... Dim drCat1 As SqlDataReaderdrCat1 = SqlHelper.ExecuteReader( strconn, _ CommandType.StoredProcedure, _ "GetProductsByCategory", _ New SqlParameter("@CategoryID", 1))
...drCat1.Close()
http://www.desarrolladoras.com - info@desarrolladoras.com
EjemplosEjemplos
ExecuteNonQueryExecuteNonQuery
Imports Microsoft.ApplicationBlocks.Data.SqlHelper
Public Shared Function GrabarCliente(ByVal cliente As String) _ as Integer
Dim Params(0) As SqlParameterParams(0) = New SqlParameter("@NomCliente", _
SqlDbType.VarChar, 50) Params(0).Value = cliente Return ExecuteNonQuery( strconn, _ CommandType.StoredProcedure, _ “Clientes_Insert", Params)End Function
http://www.desarrolladoras.com - info@desarrolladoras.com
EjemplosEjemplos
ExecuteDatasetExecuteDataset
Imports Microsoft.ApplicationBlocks.Data.SqlHelper
Public Shared Function LeerTodos( ) As DataSet Return ExecuteDataset( strconn,CommandType.StoredProcedure, _ “Clientes_GetAll“)End Function
http://www.desarrolladoras.com - info@desarrolladoras.com
EjemplosEjemplos
FillDatasetFillDataset
Imports Microsoft.ApplicationBlocks.Data.SqlHelper
Public Shared Function LeerTodos( ByVal ds as Dataset ) _As DataSet
Dim strTabla() As String = {“Parametros_GetAll"} FillDataset( strconn, CommandType.StoredProcedure, _
"Parametros_GetAll", ds, strTabla) Return ds End Function
http://www.desarrolladoras.com - info@desarrolladoras.com
PausaPausa
MateMateBreakBreak
http://www.desarrolladoras.com - info@desarrolladoras.com
Escribiendo el código de la Escribiendo el código de la Capa de DatosCapa de Datos
1. Agregamos una clase al proyecto AluDatos.
2. Esta clase va a tener varios métodos compartidos para las distintas operaciones que necesitemos hacer sobre la Base de Datos.
TraerDataSet
Actualizar
Borrar
GuardarValor
http://www.desarrolladoras.com - info@desarrolladoras.com
Escribiendo el código de la Escribiendo el código de la Capa de DatosCapa de Datos
Public Class CGrlDatos
Shared ConnAlu As String = _ Configuration.ConfigurationSettings.AppSettings("ConnALU")
Public Shared Function TraerDataset( _ ByVal entidad As String) As DataSet Try Return ExecuteDataset(ConnAlu, _ CommandType.StoredProcedure, entidad & "_GetAll") Catch ex As Exception
Throw ex End Try End Function...End Class
http://www.desarrolladoras.com - info@desarrolladoras.com
Capa Capa NegocioNegocio
http://www.desarrolladoras.com - info@desarrolladoras.com
Escribiendo el código de la Escribiendo el código de la Capa NegocioCapa Negocio
1.Agregamos una Clase CEntidad al proyecto AluNegocio.
2.Va a ser la Clase base de la cual vamos a heredar para crear mas fácilmente las demás.
3.Esta Clase va a estar compuesta por:
Declaración de Variables
Un constructor
Propiedades
Métodos
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidad
Public Class CEntidad
Declaración de Variables
Constructores
Propiedades
Metodos
End Class
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidadVariablesVariables
#Region "Declaración de Variables“
Friend mNomEnt As StringFriend mId As IntegerProtected Friend mDatos As DataRowProtected Friend mTDatos As DataSet
#End Region
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidadConstructorConstructor
#Region "Constructores"
Sub New(ByVal NombreEntidad As String)mNomEnt = NombreEntidad
End Sub
#End Region
http://www.desarrolladoras.com - info@desarrolladoras.com
CCllaassee
CCEEnnttiiddaad d
#Region "Propiedades"
Public Overridable Property Id() As Integer Get
Return mId End Get
Set(ByVal Value As Integer)Try mId = Value CGrlDatos.TraerDataset(mTDatos, mNomEnt, mId) If mTDatos.Tables(0).Rows.Count > 0 Then
mDatos = mTDatos.Tables(0).Rows(0) Else
mDatos = mTDatos.Tables(0).NewRowmTDatos.Tables(0).Rows.Add(mDatos)
End If Catch ex As Exception
Throw ex End Try
End Set End Property
#End Region
PPrrooppiieeddaaddeess
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidadMétodosMétodos
Public Overridable Function TraerTodos() As DataSetTry
Return CGrlDatos.TraerDataset(New DataSet, _mNomEnt, mNomEnt & "_GetAll")
Catch ex As ExceptionThrow ex
End TryEnd Function
Public Overridable Function TraerLista() As DataSetTry
Return CGrlDatos.TraerDataset(New DataSet, _ mNomEnt, mNomEnt & "_GetList")
Catch ex As ExceptionThrow ex
End TryEnd Function
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidadMétodosMétodos
Public Overridable Function TraerUno() As DataSetTry
Return CGrlDatos.TraerDataset(New DataSet, _ mNomEnt & "_GetByNro" & _ mNomEnt.PadLeft(3), Me.Id)
Catch ex As ExceptionThrow ex
End TryEnd Function
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidadMétodosMétodos
Public Overridable Sub Actualizar()Try Dim DatosUno() As Object = _
mTDatos.Tables(0).Rows(0).ItemArray() If Me.Id <> -1 Then
CGrlDatos.Actualizar(mDatos, mNomEnt & "_Update") Else
CGrlDatos.ActualizarSal(mDatos, mNomEnt & "_Insert")Me.Id = DatosUno(0)
End IfCatch ex As Exception
Throw exEnd Try
End Sub
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CEntidadClase CEntidadMétodosMétodos
Public Overridable Function Eliminar(ByVal Id As Integer, _ ByVal nomparam As Array) As Integer
Try Return CGrlDatos.Borrar(nomparam, _
mNomEnt & "_Delete", Id)Catch ex As Exception Throw exEnd Try
End Function
http://www.desarrolladoras.com - info@desarrolladoras.com
Escribiendo el código de la Escribiendo el código de la Capa NegocioCapa Negocio
1. Agregamos una Clase por cada entidad que necesitemos, en este caso Alumnos, Curso, Asignaturas, Localidades, Paises, etc... al proyecto AluNegocio.
2. Estas Clases van a heredar de la Clase base CEntidad
3. Cada una de estas Clases va a estar compuesta por:
Declaración de Variables
Un constructor
Propiedades
Métodos
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CPaisClase CPais
Public Class CPais
Inherits ALU.AluNegocio.CEntidad
Declaración de Variables
Constructores
Propiedades
Actualización
End Class
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CPaisClase CPaisVariablesVariables
#Region "Declaración de Variables“
Protected Friend mTodosDatos As New dsPaisesPrivate Pais As dsPaises.PaisesRow
#End Region
http://www.desarrolladoras.com - info@desarrolladoras.com
#Region "Constructores"
Sub New(ByVal value As Integer) MyBase.New("Paises") Try
MyBase.mId = valuemTodosDatos.Clear()CGrlDatos.TraerDataset(mTodosDatos, mNomEnt,
value)If mTodosDatos.Tables(0).Rows.Count = 0 Then
Pais = mTodosDatos.Paises.NewPaisesRowPais.PaiNroPai = -1Pais.PaiDesc = ""
ElsePais = mTodosDatos.Paises.Rows(0)
End IfMyBase.mTDatos = mTodosDatosMyBase.mDatos = Pais
Catch ex As ExceptionThrow ex
End Try End Sub#End Region
CCllaassee
CCPPaaiis s
CCoonnssttrruuccttoorr
http://www.desarrolladoras.com - info@desarrolladoras.com
CCllaassee
CCPPiiaas s
#Region "Propiedades"
Public Overrides Property Id() As IntegerGet
Return MyBase.mIdEnd Get
Set(ByVal Value As Integer)MyBase.mId = Value
End SetEnd Property
Public Property Desc() As StringGet
Return Pais.PaiDescEnd GetSet(ByVal Value As String)
Pais.PaiDesc = ValueEnd Set
End Property
#End Region
PPrrooppiieeddaaddeess
http://www.desarrolladoras.com - info@desarrolladoras.com
Clase CPaisClase CPaisMétodosMétodos
#Region "Actualización"
Public Overrides Sub Actualizar()Try If Me.Id > 0 Then
CGrlDatos.Actualizar(Pais, Me.mNomEnt & "_Update") Else
mId = CGrlDatos.ActualizarSal(Pais, _ Me.mNomEnt & "_Insert")
End IfCatch ex As Exception Throw exEnd Try
End Sub
#End Region
http://www.desarrolladoras.com - info@desarrolladoras.com
Capa Capa ClienteCliente
http://www.desarrolladoras.com - info@desarrolladoras.com
Herencia Herencia de de
FormulariosFormularios
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario BaseFormulario Base
Public Class CUsuario
Inherits USU.Negocio.CEntidad
• Creamos un Formulario del cual van a heredar la mayoría de los Formularios de nuestra Aplicación
• Colocamos este Formulario en el Proyecto AluGlobal para poder hacer referencia a él desde el Proyecto Alumnos y cualquier otro Proyecto que agreguemos en la capa Cliente.
• Agregamos a este Formulario todas las cosas que se van a repetir en todos los formularios. Icono del Sistema, Nombre de la Empresa, etc...
• Generamos la solución para que se genere el Assembly y así poder heredarlo
• Creamos un Formulario del cual van a heredar la mayoría de los Formularios de nuestra Aplicación
• Colocamos este Formulario en el Proyecto AluGlobal para poder hacer referencia a él desde el Proyecto Alumnos y cualquier otro Proyecto que agreguemos en la capa Cliente.
• Agregamos a este Formulario todas las cosas que se van a repetir en todos los formularios. Icono del Sistema, Nombre de la Empresa, etc...
• Generamos la solución para que se genere el Assembly y así poder heredarlo
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario HeredadoFormulario Heredado
Agregamos un Formulario que va a heredar todas las características de nuestro Formulario Base
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario HeredadoFormulario Heredado
También podríamos haber elegido Formulario Heredado del cuadro de diálogo Agregar Nuevo Elemento
Elegimos el Formulario del cual vamos a heredar
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario HeredadoFormulario Heredado
• Ya tenemos nuestro Formulario Heredado
• Todo lo que agregamos en el Formulario Base va a estar en todos los formularios heredados del mismo.
• Ahora nos dedicamos a agregarle a los Formularios heredados los controles particulares del mismos sin tener que preocuparnos que las cosas generales queden en distinto formato en los distintos formularios de la aplicación.
• Ya tenemos nuestro Formulario Heredado
• Todo lo que agregamos en el Formulario Base va a estar en todos los formularios heredados del mismo.
• Ahora nos dedicamos a agregarle a los Formularios heredados los controles particulares del mismos sin tener que preocuparnos que las cosas generales queden en distinto formato en los distintos formularios de la aplicación.
No tendremos que volver a agregar estos controles No tendremos que volver a agregar estos controles y este código nunca mas!y este código nunca mas!
Todos van a ser iguales!Todos van a ser iguales!
http://www.desarrolladoras.com - info@desarrolladoras.com
Armado de un Formulario Armado de un Formulario
estiloestilo“Outlook Express”“Outlook Express”
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario estilo Formulario estilo “Outlook Express”“Outlook Express”
Es fácil!!!Son sólo 10 pasos
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario estilo “Outlook Express”Formulario estilo “Outlook Express”
1. Colocar en el Formulario todos los controles que vayan pegados sobre sus bordes. ToolBar, StatusBar, etc...
2. Colocar un control Panel y cambiar su propiedad Dock a Left
3. Colocar un control Splitter en el Formulario y cambiar su propiedad Dock a Left
4. Colocar un control ListView en el Formulario y cambiar su propiedad Dock a Fill
1. Colocar en el Formulario todos los controles que vayan pegados sobre sus bordes. ToolBar, StatusBar, etc...
2. Colocar un control Panel y cambiar su propiedad Dock a Left
3. Colocar un control Splitter en el Formulario y cambiar su propiedad Dock a Left
4. Colocar un control ListView en el Formulario y cambiar su propiedad Dock a Fill
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario estilo “Outlook Express”Formulario estilo “Outlook Express”
5. Colocar un control Panel dentro del primer Panel y cambiar su propiedad Dock a Top
6. Colocar un control Splitter dentro del primer Panel y cambiar su propiedad Dock a Top
7. Colocar otro control Panel dentro del primer Panel y cambiar su propiedad Dock a Fill
5. Colocar un control Panel dentro del primer Panel y cambiar su propiedad Dock a Top
6. Colocar un control Splitter dentro del primer Panel y cambiar su propiedad Dock a Top
7. Colocar otro control Panel dentro del primer Panel y cambiar su propiedad Dock a Fill
Sólo faltan 3 pasos mas...
http://www.desarrolladoras.com - info@desarrolladoras.com
Formulario estilo “Outlook Express”Formulario estilo “Outlook Express”
8. Dentro de cada uno de los dos últimos Panel que colocamos, colocar un control Button y cambiar su propiedad Dock a Top
9. Colocar un control TreeView dentro de cada uno de los 2 últimos Panel y cambiar su propiedad Dock a Fill
10.Colocar 2 controles ImageList en el formulario
8. Dentro de cada uno de los dos últimos Panel que colocamos, colocar un control Button y cambiar su propiedad Dock a Top
9. Colocar un control TreeView dentro de cada uno de los 2 últimos Panel y cambiar su propiedad Dock a Fill
10.Colocar 2 controles ImageList en el formulario
Listo!!!
Ahora sólo falta escribir un poquito para llenar de datos los controles y para que además funcionen...
http://www.desarrolladoras.com - info@desarrolladoras.com
PrincipalesPrincipales
Propiedades, Propiedades, Métodos y Métodos y Eventos Eventos
de algunos Controlesde algunos Controles
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
ImageListImageListPropiedades
Images: Colección de imágenes, aquí se cargan los Iconos
ImageSize: Cambiando esta propiedad podemos hacer que los Iconos se vean mas chicos o mas grandes
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
TreeViewTreeViewPropiedades
ImageList: Asignar el nombre del ImageList del cual se van a tomar los Iconos a mostrar
ItemHeight: Altura de cada nodo
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
TreeViewTreeViewPropiedades
Nodes: Colección de nodos, creamos los nodos, le asignamos el texto a mostrar y el índice de icono. También podemos hacer esto por código
SelectedNode: Nodo seleccionado en un instante dado
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
TreeViewTreeViewMétodos
GetNodeAt: Devuelve el nodo, si existe, que se encuentra en el lugar donde se hizo click en base a las coordenadas x e y
ExpandAll: Expande todos los nodos del árbol
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
TreeViewTreeViewEventos
AfterSelected: Se produce luego de seleccionar un nuevo nodo
MouseDown: Se produce al presionar cualquier botón del mouse. Lo utilizamos para saber si hizo click sobre un nodo o no y para cambiar de nodo seleccionado apretando cualquier botón del mouse
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
ListViewListViewPropiedades
LargeImageList: Asignar el nombre del ImageList del cual se van a tomar los Iconos a mostrar de tamaño grande
SmallImageList: Asignar el nombre del ImageList del cual se van a tomar los Iconos a mostrar de tamaño pequeño
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
ListViewListViewPropiedades
View: Estilo de Vista en la que se muestra el ListView
SelectedItems: Colección de elementos seleccionados en el control en un instante dado
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
ListViewListViewEventos
SelectedIndexChanged: Se produce al cambiar el elemento seleccionado
http://www.desarrolladoras.com - info@desarrolladoras.com
Principales Propiedades, Métodos y Eventos Principales Propiedades, Métodos y Eventos de algunos controles de algunos controles
SplitterSplitter
Eventos
SplitterMoved: Se produce al arrastrar el Splitter
http://www.desarrolladoras.com - info@desarrolladoras.com
Links útiles:Links útiles:Universidad.NetUniversidad.Net:
http://www.microsoft.com/spanish/msdn/comunidad/uni.net/
Sitio de Microsoft dedicado a .Net Windows Forms:Sitio de Microsoft dedicado a .Net Windows Forms:
http://www.windowsforms.net
Data Access Aplication Blocks:Data Access Aplication Blocks:
http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp?frame=true
http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=c20d12b0-af52-402b-9b7c-aaeb21d1f431
Desarrollador Cinco Estrellas:Desarrollador Cinco Estrellas:
http://www.microsoft.com/spanish/msdn/comunidad/dce/default.asp
PanoramaBox:PanoramaBox: http://www.panoramabox.com/
http://www.desarrolladoras.com - info@desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
Muchas Gracias
desarrolladoras
www.desarrolladoras.com
http://www.desarrolladoras.com - info@desarrolladoras.com
Clases Instanciadas Clases Instanciadas versus versus
Clases CompartidasClases Compartidas
http://www.desarrolladoras.com - info@desarrolladoras.com
Clases CompartidasClases Compartidas
1. Las clases NO pueden ser compartidas. Sus métodos, propiedades y variables SI pueden serlo
2. Para que un Método, Propiedad y/o Variable sean compartidos debemos calificarlos con la palabra reservada SHARED
3. Un Método, Propiedad y/o Variable compartidos pueden ser usados en cualquier parte del código sin necesidad de crear un nuevo objeto, haciendo referencia al mismo a través del nombre de la clase. Ej: MiClase.MiMetodo()
http://www.desarrolladoras.com - info@desarrolladoras.com
Clases CompartidasClases Compartidas
Public Class MiClase
Public Shared MiVariable As String
Public Shared Sub MiMetodo()MiVariable = "Hola Mundo"
End Sub
End Class
Public Class OtraClase
Public Sub OtroMetodo()MiClase.MiVariable = "Hola
Gente"MiClase.MiMetodo()
End Sub
End Class
http://www.desarrolladoras.com - info@desarrolladoras.com
Clases InstanciadasClases Instanciadas
1. Las clases tal cual las definimos normalmente serán instanciadas mientras NO le agreguemos a algunos de sus miembros el calificativo SHARED (Algunos miembros podrán ser SHARED y a los mismos los podremos invocar a través del nombre de la Clase)
2. Para acceder a sus miembros, Métodos, Propiedades y/o Variables deberemos crear un objeto de esa Clase. Crearemos una nueva instancia.
3. Los Métodos, Propiedades y/o Variables de estas clases pueden ser usados en cualquier parte del código a través de la variable de objeto creada a partir de esta clase.
http://www.desarrolladoras.com - info@desarrolladoras.com
Clases InstanciadasClases Instanciadas
Public Class MiClase
Public MiVariable As String
Public Sub MiMetodo()MiVariable = "Hola Mundo"
End Sub
End Class
Public Class OtraClase
Public Sub OtroMetodo() Dim obj As MiClase = New MiClase obj.MiVariable = "Hola Gente" obj.MiMetodo()
End Sub
End Class
top related