Está en la página 1de 174

Manual de Visual Basic.

net 2003/2005

Manual de Visual Vasic.Net
LAS SOLUCIONES APORTADAS POR VB.NET
VB.NET aporta un buen número de características que muchos programadores de VB hemos Demandado desde hace largo tiempo. En cierto modo, algunas de estas incorporaciones hemos de Agradecérselas a la plataforma .NET, ya que al integrar VB dentro del conjunto de lenguajes de .NET Framework, dichos cambios han sido necesarios, no ya porque los necesitara VB, sino porque eran Requisitos derivados de la propia arquitectura de .NET. Entre las novedades aportadas por VB.NET tenemos plenas capacidades de orientación a objetos (Full-OOP), incluyendo por fin, herencia; Windows Forms o la nueva generación de formularios para Aplicaciones Windows; soporte nativo de XML; gestión de errores estructurada; un modelo de objetos Para acceso a datos más potente con ADO.NET; posibilidad de crear aplicaciones de consola (ventana MS-DOS); programación para Internet mediante Web Forms; un entorno de desarrollo común a todas Las herramientas de .NET ¿Qué es .NET? .NET es toda una nueva arquitectura tecnológica, desarrollada por Microsoft para la creación y Distribución del software como un servicio. Esto quiere decir, que mediante las herramientas de Desarrollos proporcionados por esta nueva tecnología, los programadores podrán crear aplicaciones basadas en servicios para la Web. Las características principales que conforman .NET son las siguientes: 1) La plataforma .NET Framework, que proporciona la infraestructura para crear aplicaciones y El entorno de ejecución para las mismas. 2)  Los productos de Microsoft enfocados hacia .NET, entre los que se encuentran Windows .NET Server, como sistema operativo que incluirá de forma nativa la plataforma .NET Framework; Visual Studio .NET, como herramienta integrada para el desarrollo de Aplicaciones; Office .NET; central para .NET, etc. 3) Servicios para .NET desarrollados por terceros fabricantes, que podrán ser utilizados por otras aplicaciones que se ejecuten en Internet.

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005
LOS TIPOS DE DATOS SON OBJETOS Dentro de .NET Framework, todos los tipos de datos están implementados como clases, de ahí el hecho de que cuando declaremos una variable en el código, esa variable sea además, un objeto de la clase relacionada con el tipo de dato que contiene, disponiendo de propiedades y métodos al igual que cualquier otro objeto. Ver Código fuente. En el Código fuente , escrito en VB.NET, declaramos una variable de tipo String (cadena de Caracteres), y a continuación le asignamos un valor; hasta aquí, todo igual que en versiones anteriores. Pero ahora viene lo novedoso, ya que manipulamos la variable igual que un objeto, obteniendo la longitud de su valor mediante la propiedad Length y convertimos su valor a mayúsculas ejecutando el método ToUpper(); en ambos casos mostramos el resultado usando un objeto MessageBox. Realizamos una Aplicación Windows y le agregamos un botón – doble clic y escribimos lo siguiente:

Cantidad de caracteres (coche)

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005

Debemos aclarar, no obstante, que el tipo String no se englobaría dentro de los tipos primitivos del lenguaje, ya que realmente, una variable de tipo String, lo que contiene es un array de tipos Char; sin embargo, nosotros podemos seguir manipulando cadenas de caracteres del mismo modo en el que lo hacíamos en versiones anteriores de VB, ya que el entorno se encarga de gestionar el array de valores Char que una cadena contiene.

elvis_urrutia@hotmail.es elvis

es elvis .net 2003/2005 La clase String Esta clase posee muchos métodos entre ellos tenemos ToUpper ToLower Convierte todos los caracteres de una cadena en Mayúsculas.Manual de Visual Basic. Clone Crea otra referencia a la misma cadena Concat Concatena dos cadenas Copy Crea un nuevo objeto de tipo string EndsWith IndexOf Determina si un string termina o no en una cadena dada. Convierte todos los caracteres de una cadena en minúsculas. generando una sola cadena concatenada. Insert Inserta una instancia especificada de String en una posición de índice especificada de la instancia. Length Obtiene el número de caracteres de la instancia en cuestión. Chars Obtiene el carácter situado en una posición especificada en la instancia en cuestión. Join Concatena un objeto String separador especificado entre cada uno de los elementos de una matriz String especificada. Retorna la posición de la primera ocurrencia de un carácter o de un string dado como parámetro. LastIndexOf Retorna la posición de la última ocurrencia de un carácter o de un String dado como parámetro. elvis_urrutia@hotmail.

Reemplaza todas las apariciones de un carácter Unicode o un objeto String en la instancia por otro carácter Unicode u otro objeto String. Inserta caracteres a la derecha de una cadena la cantidad especificada Si la cantidad estipulada es menor o igual a la cantidad de caracteres que tiene la cadena original no hará nada Elimina un número de caracteres especificado de la instancia a partir de una posición especificada. Substring Toma n caracteres de una cadena estipulando el inicio y la cantidad a tomar ToCharArray Copia los caracteres de la instancia en una matriz de caracteres Unicode. Devuelve una copia de String en mayúsculas. ToLower ToString ToUpper Devuelve una copia de String en minúsculas. Trim Eliminar los espacios al comienzo y al final de una cadena TrimEnd TrimStart Elimina los espacios al final de una cadena Elimina los espacios al comienzo de una cadena elvis_urrutia@hotmail. PadRight Remove Replace Split Toma en un vector de tipo string las cadenas que estén separadas por un carácter especifico.Manual de Visual Basic.es elvis . StartsWith Determina si el principio de la instancia coincide con el objeto String especificado.net 2003/2005 PadLeft Inserta caracteres a la izquierda de una cadena la cantidad especificada. Convierte el valor de la instancia en un objeto String.

elSitioWeb.Time Control LinkLabel A través de este control es posible abrir el navegador por default y acceder a un URL específico: LinkLabel1. Este control puede mostrar fechas u horas. Control Label El control Label ahora su propiedad Caption recibe el nombre de Text y por ejemplo la antes propiedad Alignment ahora recibe el nombre de TextAlign la cual tiene más opciones de alineación.net 2003/2005 CONOCIENDO LOS CONTROLES MÁS BÁSICOS CON SUS PROPIEDADES Control Button (antes CommandButton) El control CommandButton en Visual Basic .Format = DateTimePickerFormat. si desea mostrar horas utilice: nombreControl. Control DateTimePicker El control DateTimePicker muestra por defecto la fecha actual que es posible modificar a través de su propiedad value. Si requiere especificar el navegador con el cual desea abrir el URL basta con señalarlo: elvis_urrutia@hotmail.html si quiere probar sin tener acceso a internet o si quiere probar con acceso a internet seria http://www.Start (LinkLabel1.Text) Donde LinkLabel1.com. ocurre lo mismo para el caso del control Label.Diagnostics.LinkVisited = True System.Text es el valor que tiene asignado la propiedad Text por ejemplo file:///C:/pagina. Control TextBox El control TextBox tiene una capacidad de almacenamiento de 32 Kbytes de texto.es elvis . la propiedad Caption ahora recibe el nombre de Text.Process.NET recibe el nombre de Button.Manual de Visual Basic.

LinkLabel2. pero el objeto menú principal se muestra en la parte inferior dentro de la bandeja de componentes.Diagnostics.NET llaman espacio de nombres System. continua con la forma de hacerlo en Visual Basic 6 que es anteponiendo al carácter al cual deseamos hacer referencia el símbolo & elvis_urrutia@hotmail.NET.exe".xls") Control MainMenu El Control MainMenu agrega menús a un programa. Para agregar un menú simplemente seleccione el control MainMenu el cual de manera automática se ajusta al tamaño del formulario. La clase Process hace mucho más que eso pero la parte a destacar es que forma parte de la biblioteca de objetos System. el siguiente ejemplo abre el archivo indicado con Microsoft Excel: System.Process.Process. ya que el método Start de la clase Process inicia en memoria un proceso de programa ejecutable para el navegador.Diagnostics. Ahora bien lo que se muestra en la parte superior del formulario es un representación visual del menú misma que recibe el nombre de diseñador de menú.Diagnostics.es elvis . "c:\pagos.Diagnostics la cual los programadores Visual Basic .net 2003/2005 System. este menú es de fácil manipulación pues basta con escribir el nombre para las opciones y a través del menú popup es posible modificarlo.Text) 'Donde el valor de LinkLabel3. Para definir teclas de acceso para las opciones del menú. es decir.Text) 'La página se mostrara utilizando el navegador firefox Es necesario señalar algo importante del código y adentrarnos a la programación . En cuanto al método Process.Start ("firefox.Process. Una vez agregado el control MainMenu también se agrega un panel debajo del formulario la cual recibe el nombre de Bandeja de Componentes a través del cual será posible definir y modificar sus propiedades.Diagnostics. el manú se configura mediante sus propiedades.Manual de Visual Basic. el primero especifica la aplicación a emplear y el segundo especifica el archivo que abrirá la aplicación.Start destaca que además de abrir una página web puede ser utilizado para ejecutar otras aplicaciones: System.Start (LinkLabel3.Text es "winword" El método Start utiliza 2 argumentos.Start ("excel".

regresa un valor codificado que representa la hora y fecha actual del sistema.Pmt) para determinar el valor futuro de una anualidad basada en pagos fijos periodicos e intereses de tasa fija. regresa el número del día actual del sistema. (1 = Domingo. Day(fecha). regresa el número de minuto actual del sistema. regresa la parte entera de un número FormatCurrency.NET provee funciones financieras como Pmt(Rate. regresa el año actual del sistema. regresa el número de hora actual del sistema.convierte una expresión a un formato string específico... regresa el múmero del segundo actual del sistema. elvis_urrutia@hotmail. Minute(hora). regresa el valor absoluto de un número (es necesario importar System. Funciones Financieras Visual Basic . regresa el número de mes actual del sistema.).str).Math) Int. regresa un valor random entre 0 y 1 Abs. Weekday(fecha). Second(hora). regresa la fecha actual del sistema.Manual de Visual Basic. regresa True si el argumento puede ser convertido a double Rnd.PV) para determinar pagos mensuales y FV(Rate. Funciones de Tiempo y Hora En Visual Basic . DateString.es elvis . regresa la hora actual del sistema. 2 = Lunes. . regresa un string formateado a moneda y redondeado a dos decimales Formar(expr. Month(fecha). Now.Nper. regresa un valor double si el argumento puede ser convertido a double IsNumeric. regresa el número contenido en un argumento. regresa el número que representa el día de la semana.NET existen funciones a través de las cuales es posible manipular el tiempo y la hora: • • • • • • • • • • TimeString. Year(fecha). se detiene en el primer caracter no numérico.net 2003/2005 Si después de escribir las opciones de su menú desea cambiar el orden basta con seleccionar y mover la opción a la posición deseada Funciones Intrínsecas • • • • • • • • Val. CDbl.Nper. Hour(hora).

Text = Month(Now) End Sub Private Sub Button9_Click(ByVal sender As System.Click txtDay. ByVal e As System.Object.EventArgs)_ Handles Button1.Object. ByVal e As System. ByVal e As System.EventArgs)_ Handles Button3.Object. ByVal e As System.Click txtTimeString.EventArgs)_ Handles Button4.Click txtNow.Text = Year(Now) End Sub Private Sub Button10_Click(ByVal sender As System.Click txtHour.Manual de Visual Basic. ByVal e As System.Text = Now End Sub Private Sub Button4_Click(ByVal sender As System.Day(Now) End Sub Private Sub Button8_Click(ByVal sender As System.Object.EventArgs)_ Handles Button9. ByVal e As System.DateAndTime.Text = Minute(Now) End Sub Private Sub Button6_Click(ByVal sender As System. ByVal e As System.Object.EventArgs)_ Handles Button8.net 2003/2005 Private Sub Button1_Click(ByVal sender As System.Object.Object.Click txtMonth.VisualBasic.Object. ByVal e As System.Click txtWeekday.Click txtSecond. ByVal e As System.Text = Microsoft.EventArgs)_ Handles Button2.Object.Object.EventArgs)_ Handles Button10.Text = Weekday(Now) End Sub elvis_urrutia@hotmail.Click txtMinute.Text = DateString End Sub Private Sub Button3_Click(ByVal sender As System.Click txtYear.EventArgs)_ Handles Button5.EventArgs)_ Handles Button7.Click txtDateString.Text = Hour(Now) End Sub Private Sub Button5_Click(ByVal sender As System.es elvis .Text = TimeString End Sub Private Sub DateString_Click(ByVal sender As System.Text = Second(Now) End Sub Private Sub Button7_Click(ByVal sender As System. ByVal e As System.EventArgs)_ Handles Button6.

PrintPreviewDialog. *. *. 2. La propiedad InitialDirectory especifica el directorio inicial desplegado por la caja de dialogo de archivo.jpeg. ColorDialog.bmp. *. *. OpenFileDialog.png. 4. la propiedad FileName mantiene es un string que contiene el nombre del archivo seleccionado. 7. *. para que el usuario seleccione una configuración para la fuente. pudiendo acceder a sus propiedades para configurar el control. Si requiere hacer visible el cuadro de dialogo en modo ejecución tendrá que emplear el método ShowDialog(). El método ShowDialog() regresa un valor denominado DialogResult. obtiene unidad.gif).es elvis .wmf. Suponga un ejercicio donde tiene un control OpenFileDialog y otro PictureBox. nombre de directorio y nombre de un archivo existente.NET cuanta con siete tipos de cuadro de dialogo que facilitan la construcción de interfaz de usuario: 1. OpenFileDialog El control OpenFileDialog representa un dialogo preconfigurado para seleccionar un archivo que será abierto. indicando el botón del cuadro de diálogo en el que el usuario dio clic. FontDialog. *.net 2003/2005 Cuadros de Dialogo Visual Basic . 5. obtiene unidad.emf. misma que será cargada y presentada por el control de imagen (*. SaveFileDialog. muestra al usuario una vista previa de impresión. Al momento de diseñar la interfaz de usuario los controles de cuadro de dialogo no aparecen en la pantalla pero si se muestran visibles al pie de la misma.jpg. es posible utilizar el método Filter para especificar solamente los archivos que tengan el formato especificado (entre formato y formato se utiliza como separador el símbolo | pipe): elvis_urrutia@hotmail.Manual de Visual Basic. para que el usuario defina opciones de impresión 6. a través del cuadro de dialogo es posible seleccionar una imagen. PrintDialog. *. La propiedad Filter determina el formato de archivos que podrán ser presentados en la caja de dialogo.ico. para que el usuario seleccione un color de una paleta. PageSetupDialog. para que el usuario controle las opciones de configuración de página. *. 3. para desplegar la caja de dialogo de archivo se utiliza su método ShowDialog. nombre de directorio y nombre para un archivo nuevo.cur.

ShowDialog() MsgBox(dr) La siguiente línea descarga el control de imagen: pb.Filter = "formato 1|*. para desplegar la caja de dialogo de color se utiliza su método ShowDialog.Color End Sub elvis_urrutia@hotmail.Click CD.Object.EventArgs) _ Handles BtnForeColor. la propiedad color mantiene el color seleccionado por el usuario.ForeColor = FC.bmp" ofd.Object.FromFile(ofd.Click Dim FC As New ColorDialog FC.net 2003/2005 ofd.Image. ByVal e As System.EventArgs) _ Handles BtnBgColor. permitiendo al usuario seleccionar el color o definir un color personalizado. Es posible agregar el control ColorDialog al formulario aunque esté no este visiblemente contenido en el formulario pero si visible en la bandeja de componentes o es posible agregar el control ColorDialog a través de código declarando un objeto de este tipo.Image = Nothing COLORDIALOG El control ColorDialog representa un dialogo preconfigurado que despliega la caja de dialogo de color estándar.es elvis . ByVal e As System.Drawing.FileName) Dim dr dr = ofd.ShowDialog() LblText.Manual de Visual Basic. REM Agregando un control ColorDialog al formulario Private Sub BtnBgColor_Click(ByVal sender As System.BackColor = CD.Color End Sub REM Declarando un objeto tipo ColorDialog via código Private Sub BtnForeColor_Click(ByVal sender As System.ShowDialog() pb.jpg|formato 2|*.ShowDialog() LblText.Image = System.

imprimir un rango de páginas o imprimir una selección.ShowDialog() LblText.Font = FD.Manual de Visual Basic. para desplegar la caja de dialogo de impresión utilice el método ShowDialog. Es posible habilitar al usuario para imprimir varias partes de sus documentos: imprimir todo. estilo-fuente.es elvis . cajas de chequeo para efectos como subrayado o tachado. La propiedad Document se establece con un objeto PrintDocument.Font End Sub PrintDialog El control PrintDialog es una caja de dialogo preconfigurada. La propiedad Document se establece con un objeto PrintDocument. por default la caja de dialogo muestra cajas de listas para la fuente. utilizada para seleccionar una impresora. para desplegar la caja de dialogo de fuente se utiliza su método ShowDialog. escoger las páginas a imprimir y determinar otras características de impresión en aplicaciones Windows.net 2003/2005 FontDialog El control FontDialog representa un dialogo preconfigurado que despliega la caja de dialogo de fuente estándar. Private Sub BtnFont_Click(ByVal sender As System. elvis_urrutia@hotmail. para presentar como podría ser el documento cuando se imprima. la caja de dialogo de impresión almacena la configuración del usuario en el objeto PrintDocument y para imprimir utilice el método Print. el cual tiene propiedades que describen que será impreso y la habilidad para imprimir dentro de una aplicación Windows. ByVal e As System.EventArgs) _ Handles BtnFont.Click Dim FD As New FontDialog FD. la propiedad font mantiene el color seleccionado por el usuario. y tamaño.Object. Es posible agregar el control FontDialog al formulario aunque este no esté visiblemente contenido en el formulario pero si visible en la bandeja de componentes o es posible agregar el control FontDialog a través de código declarando un objeto de este tipo. para desplegar la caja de dialogo de impresión-previa utilice el método ShowDialog. PrintPreviewDialog El control PrintPreviewDialog es una caja de dialogo preconfigurada. también muestra un ejemplo de como la fuente podría aparecer.

ByVal e As System. para desplegar la caja de dialogo de PageSettings utilice el método ShowDialog.Remove(LstBoxOut.Object. RTrim Visual Basic .EventArgs) _ Handles LstBoxOut. LTrim.Load LstBox.SelectedItem) End Sub Private Sub LstBoxOut_SelectedIndexChanged(ByVal sender As System.EventArgs) Handles MyBase. Private Sub Form1_Load(ByVal sender As System.Add("Green") LstBox. Control ListBox El control ListBox hace visible una lista de items. La propiedad Document se establece con un objeto PrintDocument. Trim.Object.Add("Blue") End Sub Private Sub LstBox_SelectedIndexChanged(ByVal sender As System.Items. regresa un string que contiene una copia de un string especifico al cual se eliminaron los espacios en blanco contenidos al inicio y al final del string.es elvis .Add("Red") LstBox.SelectedItem) End Sub Trim. 3.Items. elvis_urrutia@hotmail.SelectedIndexChanged LstBoxOut.NET provee mecanismos para la eliminación de espacios en blanco contenidos en un string a través de las siguientes funciones: 1.Items.EventArgs) _ Handles LstBox. la selección del usuario se almacena en la propiedad PageSettings y debería entonces ser copiado al objeto PrintDocument. 2. LTrim.Items. regresa un string que contiene una copia de un string especifico al cual se eliminaron los espacios en blanco contenidos al inicio del string.Add(LstBox. ByVal e As System.SelectedIndexChanged LstBoxOut. regresa un string que contiene una copia de un string especifico al cual se eliminaron los espacios en blanco contenidos al final del string. incluyendo margenes y orientación del papel.Object. ByVal e As System.Manual de Visual Basic.net 2003/2005 PageSetupDialog El control PageSetupDialog es una caja de dialogo preconfigurada que permite al usuario manipular la configuración de páginas.Items. donde el usuario puede seleccionar items en la lista utilizando los clics del mouse. RTrim.

Handled = True If (Asc(e. Este evento distingue entre letras mayúsculas y minúsculas.Handled = True End If End Sub elvis_urrutia@hotmail.Windows. si se establece este valor como True entonces indicamos al formulario que no procese el evento.Windows. si o no.KeyChar)) = System. ByVal _ e As System. La propiedad Handled es un valor booleano.KeyPress REM If IsNumeric(e.net 2003/2005 Control CheckBox Un control CheckBox indica cuando un valor particular esta encendido o apagado. El siguiente ejemplo evita que se digite un número: Private Sub TextBox1_KeyPress(ByVal sender As Object. la propiedad KeyChar es el caracter correspondiente a la tecla digitada.Handled = True End Sub Handles El siguiente ejemplo válida que la entrada únicamente acepte números (permite borrar la entrada): Private Sub TextBox1_KeyPress(ByVal sender As Object.KeyChar) Then e. ByVal _ e As System.Forms.KeyPressEventArgs) TextBox1.Windows.Manual de Visual Basic. Control RadioButton Un control RadioButton permite al usuario seleccionar sólo un item de una lista de opciones.Keys. verdadero o falso.KeyChar)) >= 48 And (Asc(e.es elvis .Back Then e.KeyChar)) <= 57 Or (Asc(e. Evento KeyPress El evento KeyPress es utilizado para capturar la tecla digitada por el usuario.KeyPress If IsNumeric(e.KeyChar) Then e.Forms. puede ser utilizado también para seleccionar múltiples items de una lista de opciones.Forms.Handled = False Else e. El segundo argumento del este evento expone dos propiedades: Handled y KeyChar.KeyPressEventArgs) Handles TextBox1.

Forms.Object. ByVal _ e As System. Algo importante a anazalir y diseñar es cuando y como integrar un mecanismo Try . elvis_urrutia@hotmail.KeyChar)) <= 90 Or _ (Asc(e.Click Dim OFD As New OpenFileDialog OFD.Handled = False Else e.ShowDialog() wmp.Catch para controlar los errores. incluyendo MPEG. AVI. por no poderse completar una instrucción entonces Visual Basic . ya que este mecanismo atrapa el error definiendo las acciones a seguir cuando se identifica el error.Back Then e.Keys.Manual de Visual Basic.openPlayer(OFD. WAV y MIDI.KeyChar)) >= 65 And (Asc(e.KeyChar)) = System.KeyPressEventArgs) Handles txtLetras.es elvis .NET no se puede recuperar.FileName) End Sub ¿Qué es un error en tiempo de ejecución?.net 2003/2005 El siguiente ejemplo válida que la entrada únicamente acepte letras (permite borrar la entrada): Private Sub txtLetras_KeyPress(ByVal sender As Object. Este control no es parte de la caja de herramientas estándar.Catch.NET no tiene instrucciones precisas que ejecutar en estos casos cuando se genera el error.EventArgs) _ Handles BtnOpen. No es más que un error inesperado del cual un programa en Visual Basic .Windows.Forms. ByVal e As System. para agregarlo seleccione Add/Remove ToolBox Items/COM/Windows Media Player Private Sub BtnOpen_Click(ByVal sender As System.KeyChar)) >= 97 And (Asc(e. Para lidiar con los errores en tiempo de ejecución Visual Basic tiene este nuevo mecanismo Try .KeyChar)) <= 122 Or _ (Asc(e.Windows. Así que deberá emplearse en aquellas situaciones susceptibles a error.KeyPress If (Asc(e.Handled = True End If End Sub El control Windows Media Player Reproduce video y archivos de sonido en distintos formatos.

es elvis . El código contenido dentro de un bloque Try recibe el nombre de código protegido. Para probar más de una condición de error en tiempo de ejecución utilice la sentencia Catch When: Try 'Evaluar expresión Catch When Err. porque evita la interrupción del programa o aplicación y ejecuta las instrucciones contenidas en Catch.Number = 6 'Ocurrio un error en el control del índice.Manual de Visual Basic. desbordamiento Catch 'Controlar el error End Try Por último. End Try La palabra reservada Finally es opcional.net 2003/2005 La manera en que debe utilizar este mecanismo es la siguiente: Try sentencia(s) que pueden generar un error en tiempo de ejecución Catch (el error se genero) sentencia(s) que definen las acciones a seguir ya que se genero el error Finally sentencia(s) que reestablecen las condiciones antes de generarse el error. este mecanismo al igual que las sentencias de control tiene una manera de salir del bloque ya sea este Try o Catch a través del empleo de la instrucción Exit try. únicamente aplica para Try y Catch pues el objetivo de Finally es precisamente el ejecutar pase lo que pase su contenido.Number = 13 'Ocurrio un error de tipo de datos. no coinciden los tipos Catch When Err. elvis_urrutia@hotmail. pero si contiene una sentencia Finally el código contenido en esta si se ejecuta.

Cuando requiera leer su contenido utilice Input. en el segundo argumento se especifica la ruta y nombre del archivo que deseamos abrir y por último es necesario especificar en que modo se abrira el archivo.modoApertura). si deseamos agregar datos nuevos utilizamos el método Append.Filter = "txt|*.es elvis . ofd.inf" ofd.log|inf|*. elvis_urrutia@hotmail.NET existen nuevas funciones para el manejo de archivos de texto proporcionandas por el objeto Filesystem: • FileOpen(numeroArchivo. si deseamos escribir input o también es posible abrirlo en modo binario binary o en modo aleatorio random. tenga cuidado con el modo de apertura de archivos ya que si abre un archivo con Output se elimina el contenido del archivo dejándolo vació y en espera de nuevos datos. es decir. si deseamos leer su contenido utilizamos output. ofd.FileName.net 2003/2005 Try 'sentencia(s) que pueden generar un error en tiempo de ejecución 'Bajo determinada condición Exit try Catch '(el error se genero) 'sentencia(s) que definen las acciones a seguir ya que se genero el error 'Bajo determinada condición Exit try Finally 'sentencia(s) que reestablecen las condiciones antes de generarse el error. abre un archivo de texto para entrada y salida.txt|ini|*.Input) Precaución.Manual de Visual Basic. OpenMode.directorioNombreArchivo. Donde el primer argumento es un número entre 1 y 255 cuya función es controlar los archivos abiertos que tiene un programa. End Try Err Manipulación de Archivos de Texto En Visual Basic .ShowDialog() FileOpen(1.ini|log|*.

ShowDialog() FileOpen(1.Load btnLine. objeto).0) para eliminar la selección de texto.Select(1. comprueba el final del archivo de texto. lee una línea de entrada desde el archivo de texto.net 2003/2005 LineInput. Como nota aclaratoria los archivos de texto son diferentes a los archivos de documentos.inf" ofd.EventArgs) _ Handles btnOpen.Enabled = False btnClose. OpenMode. • PrintLine(numeroArchivo.Object.log|inf|*. esta función escribe datos con formato a un archivo secuencial El siguiente ejemplo ilustra el ejemplo algunas de las funciones de manipulación de archivos de texto: Dim nLine As Integer = 1 Private Sub Form1_Load(ByVal sender As System.Object. no hay más líneas que leer") End If EOF.Text txtOut. ByVal e As System.EventArgs) _ Handles MyBase. cierra el archivo de texto.Enabled = False End Sub Private Sub btnOpen_Click(ByVal sender As System. cuando nos referimos a archivos de texto entiendase un archivo que contiene únicamente caracteres reconocibles y quizá su formato sea txt.FileName.es elvis . ini.txt|ini|*.ini|log|*.Filter = "txt|*. ByVal e As System.Text += sOutAux & nLine & " : " & LineInput(1) & vbNewLine nLine += 1 Else MsgBox("Fin de archivo.Input) elvis_urrutia@hotmail. ofd. Dim sOutAux As String If Not EOF(1) Then sOutAux = txtOut.Text = vbNullString txtOut.Click ofd. los cuales tienen códigos de formato. log o inf. FileClose(1) Utilice TextBox.Manual de Visual Basic. If EOF(1) Then MsgBox("Fin de archivo") FileClose.Enabled = False btnSave.

es elvis . sfd.Enabled = True txtOut.Enabled = False End Sub Private Sub btnSave_Click(ByVal sender As System.Manual de Visual Basic. 0) End If End Sub Private Sub btnClose_Click(ByVal sender As System.Object.ShowDialog() If sfd. OpenMode. no hay más líneas que leer") btnLine.FileName. txtOut.Text += nLine & " : " & LineInput(1) & vbNewLine nLine += 1 Else MsgBox("Fin de archivo.Click FileClose(1) btnSave. ByVal e As System.net 2003/2005 btnOpen.Select(1.Object.Enabled = True End Sub Private Sub btnLine_Click(ByVal sender As System.Output) PrintLine(2.Enabled = True btnSave.EventArgs) _ Handles btnLine.Object.Enabled = False btnClose.Enabled = False btnLine.txt" sfd.Filter = "Archivos de texto txt|*. ByVal e As System.EventArgs) _ Handles btnClose.FileName <> vbNullString Then FileOpen(2.Text) FileClose(2) MsgBox("Archivo almacenado") End If End Sub elvis_urrutia@hotmail.Click sfd.EventArgs) _ Handles btnSave.Enabled = False btnClose. ByVal e As System.Click If Not EOF(1) Then txtOut.

Utilice el método Insert. para determinar el número de caracteres que tiene una cadena. ".Load lblTitulo. " ". (El primer elemento de una cadena tiene el índice 0). si una cadena se encuentra contenida en otra regresa la posición a partir de la cual encontro la cadena.Click txtOut. Utilice el método Remove. "www". Utilice la función LCase o método ToLower.Text = lblTitulo. para eliminar caracteres de la parte central de una cadena.Text = lblTitulo. Utilice la función Trim o método Trim.net 2003/2005 Manipulación de Cadenas • • • • • • • • • • El método Concat hace posible concatenar cadenas de texto. para convertir una cadena a minúsculas.ToLower End Sub Private Sub btnUpper_Click(ByVal sender As System. ByVal e As System. ".es elvis . para convertir una cadena a mayúsculas. ByVal e As System. compara cadenas y detecta diferencias en el uso de mayúsculas y minúsculas.Object. obtiene un número fijo de caracteres a partir de una posición dada de una cadena. "informatique". Utilice la función Mid o método Substring.EventArgs) _ Handles btnUpper. regresa los siguientes valores: o -1.Click txtOut. "com".Concat(" ".Text.ToUpper End Sub Private Sub btnLen_Click(ByVal sender As System. para agregar caracteres a la parte central de una cadena. ByVal e As System. _ "mx". "Tutoriales de Programación ") End Sub Private Sub btnLower_Click(ByVal sender As System.Object. elimina los caracteres en blanco iniciales y finales de una cadena.". Utilice la función InStr o método IndexOf. sorts ahead o 0. Utilice la función Len o método Length.Text.EventArgs) _ Handles MyBase. las cadenas son iguales o 1.EventArgs) _ elvis_urrutia@hotmail. Utilice la función UCase o método ToUpper. sorts after Ejemplos: Dim s As String Private Sub Form1_Load(ByVal sender As System. Utilice la función StrCmp.Object.EventArgs) _ Handles btnLower.Object.".Text = s. ByVal e As System. ".".Manual de Visual Basic.

UCase(lblTitulo.Text. ByVal e As System.Object.Text).Text. "http://") End Sub Private Sub btnStrComp_Click(ByVal sender As System. ByVal e As System.Object.Object.EventArgs) _ Handles btnIndexOf.Remove(lblTitulo. ByVal e As System.Text = StrComp(lblTitulo.EventArgs) _ Handles btnInsert.Object.Click txtOut.Binary) & _ " is equal.Text.Object.Insert(0.Text = lblTitulo.Click txtOut. CompareMethod.Text = lblTitulo. lblTitulo.Text.Manual de Visual Basic.Text.Text = lblTitulo.Text = StrComp(lblTitulo.IndexOf("informatique").Text = lblTitulo.EventArgs) _ Handles btnStrComp0.Substring(14) End Sub Private Sub btnIndexOf_Click(ByVal sender As System.Text.Object.EventArgs) _ Handles btnSubStr.Object.Click txtOut. ByVal e As System.Trim End Sub Private Sub btnRemove_Click(ByVal sender As System.Click txtOut.Length End Sub Private Sub btnSubStr_Click(ByVal sender As System.Click txtOut. ByVal e As System.EventArgs) Handles btnStrComp1. CompareMethod.Text.Text = lblTitulo.net 2003/2005 Handles btnLen.es elvis .Text = lblTitulo.Click txtOut.Binary) & _ " sorts after. ByVal e As System.Click txtOut.Click txtOut.Text.EventArgs) _ Handles btnTrim." End Sub elvis_urrutia@hotmail. 12) End Sub Private Sub btnInsert_Click(ByVal sender As System.Text.EventArgs) _ Handles btnRemove.Text." End Sub Private Sub btnStrComp_Click_1(ByVal sender As System.IndexOf("informatique") End Sub Private Sub btnTrim_Click(ByVal sender As System. ByVal e As System.

EventArgs) _ Handles btnStrCompL1.Binary) & _ " sorts ahead.Click txtOut. Dim bResultado As Boolean = ("A" = "a") MsgBox(bResultado & " : (" & Asc("A") & " = " & Asc("a") & ")") Automatización La automatización (automation) es una tecnología basada en el estándar de interoperabilidad denominado Modelo de Objetos Componentes (COM). El objetivo de automatización es utilizar las funciones de una aplicación en otra aplicación.Text & "abc". por ejemplo si deseamos obtener el código ASCII de la letra 'a' entonces empleados la función Asc.net 2003/2005 Private Sub btnStrCompL1_Click(ByVal sender As System.Text = StrComp(lblTitulo. Asc. Las aplicaciones basadas en Windows que exponen sus objetos se denominan aplicaciones objeto o servidoras y los programas que utilizan estos objetos se denominan aplicaciones controladoras o clientes. pues en realidad estaria comparando 65 y 97." End Sub Funciones Chr Asc • • Chr. A través de estas funciones es posible determinar el código ASCII de una letra o su propio código ASCII. ByVal e As System.Object. elvis_urrutia@hotmail.Text. es decir.NET cuando hace una comparación entre cadenas se basa en el código ASCII de cada uno de los caracteres que compone la cadena por lo que una comparación entre las cadenas "A" = "a" da como resultado False. CompareMethod.Manual de Visual Basic. regresa el caracter asociado con el código ASCII especificado.es elvis . "abc" & lblTitulo. regresa un valor entero el cual representa el código ASCII del caracter correspondiente. si conocemos el código ASCII y deseamos saber el caracter asociado a este entonces empleamos la función Chr Visual Basic .

En Visual Basic 6 era posible emplear la técnica enlace en tiempo de ejecución en la cual se declaraba una variable de tipo objeto y en tiempo de ejecución se asignaba un tipo de aplicación específico. Agregue una referencia excel (Project/Add Reference/Microsoft Excel versión Object Library) 2.Application").Font.Application) Nota: si no agrega la referencia entonces no tendrá disponibles las referencias del objeto Excel.Manual de Visual Basic.Minute & Now.Second & ".Quit() xlsApp = Nothing MsgBox("Se ha creado el archivo : " & sFile) elvis_urrutia@hotmail.Worksheets(1).Month & Now. Ejemplo: Dim xlsApp As Excel. Excel.Day & Now.Application xlsApp = CType(CreateObject("Excel.Workbook Dim xlsSheet As Excel. Excel.Worksheet) xlsSheet.es elvis .Cells(1.Cells(1.Visible = False sFile = "c:\prueba" & Now.Application Dim xlsBook As Excel.NET : 1. 1) = "www" xlsSheet. A través de la función CType es el mecanismo que durante la compilación devuelve el tipo de aplicación específica a la variable de aplicación. Excel. esta técnica ya no se recomienda. 2) = "informatique" xlsSheet. 4) = "mx" xlsSheet. 3) = "com" xlsSheet.Year & Now.Workbook) xlsSheet = CType(xlsBook. Excel.Add. Declare una variable de tipo objeto Excel Dim xlsApp As Excel.Cells(1.Range("B1").SaveAs(sFile) xlsSheet = Nothing xlsBook.Application"). Lo recomendable es emplear la técnica de enlace en tiempo de compilación donde se asigna en tiempo de diseño un tipo a las variables que almacenan los objetos Automatización.Hour & Now.Bold = True xlsSheet.Workbooks.xls" xlsSheet.Application.Close() xlsBook = Nothing xlsApp.net 2003/2005 Por ejemplo si desea utilizar Excel desde Visual Basic .Cells(1.Application) xlsBook = CType(xlsApp. para ser enlazados a los datos durante la compilación.Worksheet Dim sFile As String xlsApp = CType(CreateObject("Excel.

Process.net 2003/2005 Al crear este tipo de aplicaciones deberá tener un buen dominio de su funcionamiento.EventArgs) _ Handles btnCalc. De clic a la sección Components agregue el componente Process.Start("calc. ByVal e As System.Start() End Sub Private Sub btnClose_Click(ByVal sender As System. ByVal e As System. Si la extensión del archivo a ejecutar es reconocida por el Sistema no será necesario especificar su ubicación.EventArgs) _ Handles btnOpen.Diagnostics.Start para iniciar cualquier aplicación que se encuentre registrada en el Sistema. Será posible incluir clases como Threading y Diagnostics para manipular vía código. Componente Process Es posible utilizar el método Process.EXE y solo se cierran estos objetos hasta que se cierre la aplicación.exe.Start("calc. al emplear Excel.Process.Application desde Visual Basic .Object. no serán necesarios si únicamente emplea Start y CloseMainWindow Private Sub btnCalc_Click(ByVal sender As System.Click System.Click Proc. pero tenga cuidado ya que esta técnica no le permitira almacenar los cambios realizados en su trabajo. es posible pasar argumentos al abrir la aplicación para ello asigne los valores correspondientes a las propiedad Arguments. También es posible cerrar aplicaciones utilizando el método Kill..Diagnostics. ByVal e As System. ya que puede observar a través del administrador de programas que al iniciar la aplicación se crea un objeto excel.exe a su propiedad FileName.exe") End Sub Private Sub btnOpen_Click(ByVal sender As System. De esta manera para abrir una aplicación utilice el método Start() y para cerrarla el método CloseMainWindow().EventArgs) _ Handles btnClose.NET se crea otro objeto EXCEL.exe") Una vez que inica una aplicación Visual Basic .Object.Click Proc.es elvis . Por ejemplo para iniciar la calculadora de Windows: System.NET no puede detenerla. La solución es utilizar una de las nuevas funciones de Visual Studio referentes al control de procesos en Windows. de clic a su propiedad StartInfo y asigne el valor calc.Manual de Visual Basic. por lo que será necesario una buena administración de las aplicaciones a fin de no dejarlas abiertas o que originen conflictos con otras aplicaciones que el usuario abra o cierre.Object.CloseMainWindow() End Sub elvis_urrutia@hotmail.

NET existe una propiedad llamada DesktopBounds.Manual de Visual Basic. pero con menos opciones es la propiedad StartPosition.Windows.ShowDialog() Para definir las coordenadas a partir de las cuales se desea ubicar el formulario en la pantalla en Visual Basic .Form. Dim frm2 As New Form2 frm2. cuyo valor de argumento define la posición que tendrá el formulario.CenterScreen Es posible manipular el estado minimizado.Forms.net 2003/2005 Formularios Un formulario en Visual Basic .Minimized WindowState = FormWindowState. pues antes de poder abrir el formulario es necesario crear una variable del tipo del formulario que deseamos abrir y después utilizar el método Show (que abre el formulario en modo no-modal) de esta variable objeto. la cual únicamente puede ser leída o definida en tiempo de ejecución y recibe como argumentos las dimensiones de un rectángulo en pares (esquina superior izquierda y esquina inferior derecha). Ahora en Visual Basic . maximizado y restaurado de las ventanas a través de las propiedades correspondientes: WindowState = FormWindowState.NET para abrir un formulario de manera Modal es necesario especificarlo a través del método ShowDialog. Dim oRect As New Rectangle(0.DesktopBounds = oRect Otra forma de establecer la posición de un formulario durante el tiempo de diseño.Maximized WindowState = FormWindowState.Show() La forma en que Visual Basic 6 abre formularios recibe el nombre de generación implícita de instancias.NET digamos que más que novedad es algo un poco más tedioso. pero Visual Basic . 0. 300) frm2. frm2. Para abrir un formulario especifico en Visual Basic . Estas coordenadas se expresan en píxeles y toman como referencia la parte superior izquierda de la pantalla.Normal elvis_urrutia@hotmail.StartPosition = FormStartPosition. Dim frm2 As New Form2 frm2.NET exige que se declare específicamente una variable de tipo formulario antes de utilizarlo. 300.NET hereda sus propiedades de la Clase System.es elvis .

net 2003/2005 También es posible establecer el tamaño máximo o mínimo de las ventanas: Dim nMax As New Size(200.NET los controles no tienen un método Move.Maximized Gráficos En Visual Basic .Drwaing.NET no existen los controles de dibujo pues la novedad será emplear los servicios de gráficos GDI+ a través del espacio de nombres System. Top o Location de los controles o también utilizando el método SetBounds.NET soporta más tipos de formato para imagenes.Imaging incluye funciones que trabajan con los formatos siguientes: • • • • • • • • • • BMP EMF EXIF GIF Icon JPEG MemoryBMP PNG TIFF WMF elvis_urrutia@hotmail. Las propiedades DragIcon y DragMode ya no están disponibles en Visual Basic .es elvis .Drawing.Drawing Instrucciones como Circle.Graphics. 200) MaximumSize = nMax WindowState = FormWindowState. Visual Basic . Line y PSet. son sustituidas por los métodos DrawEllipse. DrawLine y la estructura Point de la clase System.NET utiliza píxeles en lugar de Twips En Visual Basic . el espacio de nombres System. El sistemas de coordenas predeterminado de Visual Basic . pero es posible desplazarlos rápidamente al actualizar las propiedades Left.Manual de Visual Basic.NET aunque el evento DragDrop continua.

net 2003/2005 A través de la utilización de funciones GDI+ del espacio de nombres System.NET trabaja en conjunto con el controlador de vídeo de la máquina para calcular como se deben presentar los píxeles del formulario y como deben aparecer en la pantalla figuras como líneas.Graphics para crearlas: Figura Línea Rectángulo Método Descripción DrawLine Línea sencilla entre dos puntos DrawRectangle Cuadrado o Rectángulo dado por cuatro puntos Arco DrawArc Línea curva entre dos puntos Círculo/Elipse DrawEllipse Figura elíptica contenida en un ractángulo Polígono DrawPolygon Figura compleja con un número de puntos y lados variable Curva Drawcurve Línea curva que pasa por un número variable de puntos Bézier DrawBezier Curva dibujada utilizando cuatro puntos splines (puntos 2 y 3 son puntos de control) elvis_urrutia@hotmail. curvas y círculos. rectángulos. Visual Basic . El sistema de coordenadas predeterminado se conforma de renglones (Eje Horizontal X) y columnas (Eje Vertical Y).Drawing.es elvis . A continuación se presenta una lista de figuras geométricas básicas y el método que emplea la clase System.y) de la esquina superior izquierda de un formulario son siempre (0.Drawing contiene diversas clases con las que es posible crear dibujos en un programa. Esta clase dispone de métodos y propiedades para dibujar figuras en un formulario.Drawing.Manual de Visual Basic. Clase System.Drawing que es una nueva API (Interfaz de Programación de Aplicaciones) será posible crear gráficos. de elementos de imagen independientes del dispositivo (píxeles) los cuales representan los puntos más pequeños que un formulario puede ubicar. Sistema de Coordenadas El punto de origen del sistema de coordenas es la esquina superior izquierda del formulario.Graphics El espacio de nombres System.0). Las coordenas (x.

100.Blue) Grafico = Me.DrawLine(Lapiz.Color. 30. pero existen métodos con el prefijo Fill que dibujan figuras que rellenan automáticamente con un color. Para hacer uso de la clase System.Drawing.CreateGraphics Grafico. Dim Grafico As System.Manual de Visual Basic.net 2003/2005 Los métodos mencionados en la tabla crean figuras vacías. También será necesario generar una instancia de la variable Graphics mediante el método CreateGraphics para Windows Form. un objeto Pen o Brush para indicar los atributos de la figura.Drawing. El objeto Brush se utiliza como argumento cuando se requiere un color de relleno. El espacio de nombres System. 80) Este código si lo incluye en el evento Load del formulario dará la sensación de no hacer nada.Graphics es necesario crear un objeto de tipo Graphics.Graphics Dim Lapiz As New System. la solución es agregar el código en el método Paint del formulario.Pen(System.Graphics se incluye en el proyecto de manera automática por lo que no es necesario importarla. el objeto Pen se utiliza como argumento de los métodos cuando no se rellena con color.es elvis .Drawing.Drawing. esto es por un efecto que se produce con los gráficos. esta será visible mientras: • • Otro control o figura no se sobreponga Si se minimiza y maximiza la ventana del formulario elvis_urrutia@hotmail.Drawing. Evento Paint Al dibujar una figura. 20.

Forms. Visual Basic .Click btn.SETBOUNDS La animación es la simulación de movimiento generado por la visualización rápida de series de imágenes correlativas en la pantalla.EventArgs) _ Handles btnIzq. 30.Click btn. ByVal e As System.CreateGraphics Grafico. Private Sub Form1_Paint(ByVal sender As Object.Color. ByVal e As System.Left += 10 End Sub Private Sub btnUp_Click(ByVal sender As System.Paint Dim Grafico As System.Drawing.PaintEventArgs) _ Handles MyBase.NET no incluye el método Move (el cual permitía mover objetos en el sistema de coordenadas) pero es posible utilizar: • • • • Left.Blue) Grafico = Me.EventArgs) _ Handles btnDer.Pen(System.net 2003/2005 Para evitar que la figura desaparezca es necesario utilizar el evento Paint del formulario. ByVal e As System.Drawing.LEFT . propiedad que mueve un objeto horizontalmente Top.Manual de Visual Basic. para que cada vez que se refresque el formulario el gráfico también se dibujo de nuevo. 80) End Sub ANIMACIÓN: TOP .Drawing.Left -= 10 End Sub Private Sub btnDer_Click(ByVal sender As System. 20.Windows.Graphics Dim Lapiz As New System.Object.es elvis .EventArgs) _ Handles btnUp.LOCATION . 100. método que define los límites de un objeto a una posición y tamaño específicos Private Sub btnIzq_Click(ByVal sender As System. propiedad que mueve un objeto a una posición especifico SetBounds.Object. propiedad que mueve un objeto verticalmente Location.DrawLine(Lapiz.Top -= 10 End Sub elvis_urrutia@hotmail. ByVal e As System.Object.Click btn.

Top.Left.Top.Width = 75 And btn. ByVal e As System.EventArgs) _ Handles btnDw. 100) If btn.Top = 32 And btn. ByVal e As System.Left = 104 End If End Sub Private Sub btnSize_Click(ByVal sender As System. btn.Object. 75.Click If btn.Manual de Visual Basic.es elvis .EventArgs) _ Handles btnSize.Click Dim newPos As New Point(100.Click btn.Width + 10.Object. btn.1 elvis_urrutia@hotmail.Height = 23 Then btn. Me.Height + 10) Else btn. Tenga en cuenta que el valor de la opacidad está en el rango del 0 al 1.net 2003/2005 Private Sub btnDw_Click(ByVal sender As System.Left.SetBounds(btn. btn.Object. ByVal e As System.Top = 32 btn.SetBounds(btn. btn.Location = newPos Else btn.Left = 104 Then btn.Opacity -= 0. 23) End If End Sub Opacidad en Formularios La novedad gráfica en los formularios para Visual Basic .NET es la propiedad Opacity a través de la cual puede hacer un efecto de transparencia en sus formularios.Top += 10 End Sub Private Sub btnMove_Click(ByVal sender As System.EventArgs) _ Handles btnMove.

un diseño que describe las propiedades (datos) y métodos (acciones) de un objeto. donde esta clase existente recibe el nombre de Clase Base y la nueva clase derivada de la clase base es llamada Clase elvis_urrutia@hotmail. además de proteger el contenido interno de un objeto a través de una avería o referencia incorrecta por código externo. Herencia y Polimorfismo. Clases y Objetos Un Objeto es una combinación de datos y acciones que pueden ser tratados como unidad.net 2003/2005 Programación Orientada a Objetos Se considerada un lenguaje orientado a objetos si soporta las siguientes tres características Encapsulación. de esta manera el contenido interno del objeto es protegido de daños accidentales o intencionados por código externo. referente a un grupo de propiedades y métodos que pueden ser tratados como una unidad u objeto. Una de las reglas básicas de la encapsulación es que los datos de las clases deberían ser modificados o recuperados sólo a través de procedimientos apropiados. Los objetos soportan herencia para perfeccionar el código reutilizado y diseño lógico. Con la apropiada encapsulación un objeto es solamente referenciado a través de una interfaz formal evitando efectos laterales. es decir. limitando interactuar al objeto con código externo y manteniendo las operaciones internas del objeto invisibles hacia el mundo exterior. Data hiding es una técnica en la cual se declaran detalles internos de una clase como Private para prevenirlos de ser utilizados fuera de la clase. Los objetos emplean encapsulación para prevenir accesos impropios a la estructura interna de un objeto. Encapsulación Encapsulación. Los objetos son piezas modulares con interfaces bien definidas que explican el uso apropiado de los objetos. La programación orientada a objetos es un excelente ejemplo de un mejoramiento creciente.es elvis . para ello se pueden utilizar los modificadores Private o Protected para evitar que un procedimiento externo ejecute un método de clase o evitar la lectura y modificación de datos en las propiedades y campos. Herencia La Herencia describe la habilidad para crear una nueva clase basada en la existencia de una clase existente.Manual de Visual Basic. Una Clase es una estructura de un objeto. La encapsulación también permite controlar como los datos y procedimientos son utilizados. referencias inesperadas y cambios indeseables que ocurran en adición a el comportamiento intencionado.

propiedades y métodos. un campo es una variable en la clase y usualmente es privada. Es conveniente listar primero los campos. métodos y eventos de la clase base y puede ser personalizada agregando nuevas propiedades y métodos. En Visual Basic .Manual de Visual Basic. . La definición de la clase puede también contener métodos constructores que son invocados cuando un nuevo objeto es instanciado desde una clase. Let y Set. Visual Basic . End Class Las propiedades de las clases cambian de sintaxis y ya no se utiliza Property Get. Para que una Clase herede la interfaz y comportamiento de otra Clase existente se utiliza la palabra clave reservada Inherits. un método es una función o procedimiento dentro de una clase. La clase derivada hereda las propiedades. propiedades y métodos.net 2003/2005 Derivada. el polimorfismo permite utilizar nombres compartidos y el sistema podría aplicar el código apropiado para un objeto particular. una propiedad contiene procedimientos especiales Get y Set que permiten al código externo hacer referencia al campo en un sentido que mantiene la encapsulación de datos. un campo es una variable en la clase y usualmente es privada. La Herencia es un mecanismo por medio del cual una Clase puede adquirir las características de comportamiento e interfaz de otra Clase. solo incorporaba ciertas características de la programación orientada a objetos.NET agrega el mecanismo de Herencia. una propiedad es una programación constructora que tipicamente provee la interfaz para un campo en una clase. Polimorfismo El Polimorfismo es la habilidad de los objetos de diferentes clases para responder apropiadamente a nombres u operadores de métodos identicos.NET las clases se definen utilizando la siguiente sintaxis: Public Class . después las propiedades y los métodos constructores y por último cualquier otro método adicional. La definición de una clase consiste de campos. que en versiones anteriores del Lenguaje no la incluia. Agregar una Clase La definición de una clase consiste de campos.es elvis . una propiedad es una programación constructora que tipicamente provee la interfaz para un elvis_urrutia@hotmail. .

net 2003/2005 campo en una clase.Manual de Visual Basic. La definición de la clase puede también contener métodos constructores que son invocados cuando un nuevo objeto es instanciado desde una clase. escriba el nombre de la propiedad y su tipo. Escriba las variables para su clase: Public Class Persona Private sNombre As String Private nEdad As Integer Private bSexo As Boolean End Class A continuación escriba las funciones para sus operaciones. Es conveniente listar primero los campos. Private|Public Class nombreClase campos propiedades constructores métodos End Class En Visual Basic .es elvis .NET para agregar una Clase seleccione: Project/Add Class y escriba un nombre para la Clase. un método es una función o procedimiento dentro de una clase. una propiedad contiene procedimientos especiales Get y Set que permiten al código externo hacer referencia al campo en un sentido que mantiene la encapsulación de datos. presione Enter y de manera automática se agrega el código de la propiedad el cual es necesario completar: Public Class Persona Private sNombre As String Private nEdad As Integer Private bSexo As Boolean Public Property Nombre() As String Get Return sNombre End Get Set(ByVal Value As String) sNombre = Value End Set End Property End Class elvis_urrutia@hotmail. después las propiedades y los métodos constructores y por último cualquier otro método adicional.

entonces escriba su procedimiento: Public Sub sexoPersona() If bSexo Then MsgBox("Hombre") Else MsgBox("Mujer") End If End Sub Ejemplo de la Clase Persona: Public Class Persona Private sNombre As String Private nEdad As Integer Private bSexo As Boolean Public Property Nombre() As String Get Return sNombre End Get Set(ByVal Value As String) sNombre = Value End Set End Property Public Property edad() As Integer Get Return nEdad End Get Set(ByVal Value As Integer) nEdad = Value End Set End Property Public Property sexo() As Boolean Get Return bsexo End Get Set(ByVal Value As Boolean) bsexo = Value End Set End Property Public Sub sexoPersona() If bSexo Then MsgBox("Hombre") Else MsgBox("Mujer") End If End Sub End Class elvis_urrutia@hotmail.Manual de Visual Basic.net 2003/2005 Si necesita agregar un método a su clase.es elvis .

Text Empleado. es decir. Debajo del código de la Clase Persona escriba: Public Class Director Inherits Persona Private sArea As String Public Property Area() As String Get Return sArea End Get Set(ByVal Value As String) sArea = Value End Set End Property End Class En su interfaz agregue: Dim DirectorRegional As New Director DirectorRegional.Text Empleado.Area) elvis_urrutia@hotmail.sexo = txtSexo.Manual de Visual Basic.Nombre = txtNombre. la única relación existente es por el valor que se asigna o por el valor que se regresa. la parte donde se asigna y recupera el valor. si desea crear una Clase que herede de la Clase Persona puede incluir en el mismo módulo de Clase Persona.Text) Empleado. por ejemplo Director y escribir dentro del bloque de la clase la declaración que indica que hereda el comportamiento y propiedades de otra Clase a través de la palabra reservada Inherits.net 2003/2005 Interfaz de la Clase Persona: Dim Empleado As New Persona Empleado.sexoPersona() Como puede notar las declaraciones de obtención y asignación de valores para las propiedades coinciden no en nombre ya que puede declarar la primer parte de las propiedades con un nombre y con otro la declaración de la propiedad por completo. Atención es posible crear más de una Clase dentro de un módulo de Clase siempre y cuando las clases se encuentren delimitadas por las intrucciones de inicio (Public Class) y final (End Class) de la Clase.edad = CInt(txtEdad. Así que.es elvis . la Clase que hereda.Area = "Finanzas" MsgBox(DirectorRegional.

La propiedad HasMorePages indica cuando una página adicional debería ser impresa.Printing Public Class Form1 . el evento PrintPage es invocado para cada página que se imprima.NET utiliza como mecanismo la Clase PrintDocument (agregando el control al formulario o a través de código).Drawing. que define la información de eventos de la página a imprimir. algunos objetos se agregan de manera automática al proyecto. fuente.es elvis . Para la interfaz de impresión es posible utilizar los controles de cuadros de diálogo como PrintDialog.net 2003/2005 Impresión Si requiere imprimir. pero será necesario importar al principio del formulario: Imports System. PrintPreviewDialog y pageSetupDialog Si requiere imprimir varias páginas deberá crear un manejador de eventos PrintPage que imprima un documento página a página. en vez de hacerlo con el objeto Printer como se hace en Visual Basic 6.Manual de Visual Basic. .MeasureString cuantifica el tamaño del string y determina el número de caracteres adecuado y líneas para el string especificado. La Clase PrintDocument dispone de objetos como PrinterSettings que define la impresión predeterminada para una impresora. el objeto PageSettings que define la impresión predeterminada para una página o el objeto PrintPageEventArgs. tamaño máximo y formato. El método Graphics. Visual Basic . El espacio de nombres System.Printing Cuando es invocado el método PrintDocument. destinación point y format. elvis_urrutia@hotmail. al agregar un control PrintDocument a un formulario. Impresión de un gráfico Importe la Clase System.Printing contiene la clase PrintDocument.Drawing.Drawing. El método Graphics. brush.PrintString dibuja el string utilizando font.Printing al inicio del formulario: Imports System.Drawing.

DrawString(txt.ToString) End Try End Sub Impresión de un texto A diferencia del ejercicio anterior. ByVal ePrint As PrintPageEventArgs) ePrint. 100) ePrint.Printing Escribir en lugar del manejador de evento un procedimiento: Private Sub ImprimirTexto(ByVal sender As System. conoceremos como imprimir un texto.VisibleClipBounds) ePrint.Regular).Object.HasMorePages = False End Sub Agregue un botón (utilicelo como requiera) Private Sub btnPrint_Click(ByVal sender As System. sin agregar un control PrintDocument. 11.Graphics.Black.PrintPage.Click Try AddHandler printDoc. ePrint.imprimirImagen printDoc.HasMorePages = False End Sub elvis_urrutia@hotmail.net 2003/2005 Agregue un control PrintDocument (no es visible en su formulario.Object.Drawing. pero si debajo de este) Escriba el código del manejador: Private Sub imprimirImagen(ByVal sender As System. ByVal e As System. 100. _ Brushes.Text. utilizaremos un procedimiento: Importar la clase: Imports System.Print() Catch ex As Exception MsgBox("Ex : " & ex.FromFile("c:\relog. pero si agregando en su lugar código y también en vez de un manejador de evento.Manual de Visual Basic. New Font("Arial".Object.DrawImage(Image.Graphics. ByVal ePrint As PrintPageEventArgs) ePrint.ico").EventArgs) _ Handles btnPrint.es elvis .Graphics. AddressOf Me. FontStyle.

por ejemplo si imprime un archivo que no tiene retornos de carro al final de las líneas será necesario escribir código que lo controle.ImprimirTexto prnTxt. escribir: Private Sub bntPrnTxt_Click(ByVal sender As System. Para controlar la impresión de varias páginas es necesario crear una página virtual. Tampoco es posible imprimir más de una página de texto. por lo tanto no se imprime. tenga en cuenta las limitaciones que se tienen.MeasureString.ToString) End Try End Sub Importante. pues no se permite imprimir texto que sobrepase el margen derecho del papel.PrintPage. ByVal e As System.IO Imports System.Drawing. Impresión de un archivo Importar clases Imports System.net 2003/2005 En lugar de agregar un control PrintDocument.EventArgs) _ Handles bntPrnTxt.Object. 12) elvis_urrutia@hotmail. pues lo que sobrepase una página se ignora. en el evento clic del botón. tampoco se ajustan automáticamente las líneas cuando se alcanza el borde del papel.es elvis .Print() Catch ex As Exception MsgBox("Ex : " & ex.Manual de Visual Basic.Click Try Dim prnTxt As New PrintDocument AddHandler prnTxt. lo haremos via código: Dim prnTxt As New PrintDocument Agregar una caja de texto Agregar un botón. AddressOf Me. para imprimir el contenido de la caja de texto.Printing Debajo del código generado automáticamente por Visual Basic . para ello utilice el evento PrintPage o el método Graphics.NET (Windows Form Designer generated code) escriba Private OptPrnPage As New PageSettings Private StrToPrn As String Private FontPrn As New Font("Arial".

EventArgs) _ Handles btnPrnFile. RichTextBoxStreamType.PlainText) FS.Manual de Visual Basic.ShowDialog If DR = DR.Print() End If Catch ex As Exception MsgBox("Ex : " & ex.Text PD.FileName <> vbNullString Then Try Dim FS As New FileStream(OFD.DefaultPageSettings = OptPrnPage StrToPrn = RTB.ShowDialog() If OFD. ByVal e As System.EventArgs) _ Handles btnOpenFile.Close() StrToPrn = RTB.Click OFD.LoadFile(FS.FileName.Open) RTB.Click Try prnFile.Document = prnFile Dim DR As DialogResult = PD.ToString) End Try End If End Sub Agregar un control PrintDialog Agregue un botón para mandar imprimir el archivo y en el evento clic escriba Private Sub btnPrnFile_Click(ByVal sender As System.Object.txt" OFD.es elvis .OK Then prnFile.Object. ByVal e As System.Filter = "txt|*.net 2003/2005 Agregar un control OpenFileDialog Agregar un control de texto enriquecido Agregar un botón para abrir un archivo de texto y en el evento clic escribir Private Sub btnOpenFile_Click(ByVal sender As System.Text Catch ex As Exception MsgBox("Ex : " & ex.ToString) End Try End Sub elvis_urrutia@hotmail. FileMode.

FontPrn.Substring(nChars) e.HasMorePages = False StrToPrn = RTB.Top. FontPrn. e.Left. sFormat) If nChars < StrToPrn.Height) Dim MySize As New SizeF(e.Object.MarginBounds. entre ellos ejemplos simples.Printing. teniendo todos estos conceptos vistos anteriormente. rectAng.PrintPageEventArgs) Handles PrnFile.Width. nChars) e. nChars.HasMorePages = True Else e.Trimming = StringTrimming.MarginBounds.net 2003/2005 Dé doble clic para agregar al control PrnFile (PrintDocument1) el código del evento clic Private Sub PrnFile_PrintPage(ByVal sender As System.Manual de Visual Basic.Drawing.MarginBounds.FontPrn.MarginBounds. e.MarginBounds.es elvis . _ e. nLines) StrToPrn = StrToPrn.Black.Length Then StrToPrn = StrToPrn.MeasureString(StrToPrn. MySize.Text End If End Sub Hasta aquí hemos logrado reconocer las funciones y cada evento y saber como funciona mediante código de aquí en adelante vamos aver ejemplos desarrollados con cada uno de ellos .Width. ByVal e As _ System.Graphics.Substring(0.MarginBounds. avanzados y complejos.Word e. elvis_urrutia@hotmail.Graphics.PrintPage Dim nChars As Integer Dim nLines As Integer Dim sPage As String Dim sFormat As New StringFormat Dim rectAng As New RectangleF(e.Height . sFormat.DrawString(sPage.Graphics)) sFormat.GetHeight(e. e. Brushes.

es elvis . elvis_urrutia@hotmail. Estamos declarando una variable de tipo lectura esa variable va a tomar todo lo que introduzca en el Input Box. eso nos permite el código vbCrLf entre amperson como se muestra en el código.") Tipos de Mensajes (InputBox) Al ejecutar se debe Mostar una ventana pequeña (InputBox) donde te dirá “Déme su Nombre” deberás ingresar tu nombre y hacer clic en aceptar y se mostrara “Su nombre es: “Nombre Ingresado”. Agregar un formulario y luego agregar un botón doble clic en el botón y escribir el siguiente código.Manual de Visual Basic.net 2003/2005 Tipos de Mensajes ( MsgBox) Al ejecutar debe debe de salir “Hola esto es un ejemplo” pero mira en la forma que sale una línea debajo de la otra. MsgBox("Hola" & vbCrLf & "Esto es un ejemplo. Agregar un formulario y luego agregar un botón doble clic en el botón y escribir el siguiente código.

net 2003/2005 Mostrando la Aplicación Desarrollada de las Fechas (Pág.es elvis . Nº 9) elvis_urrutia@hotmail.Manual de Visual Basic.

Manual de Visual Basic.net 2003/2005 Aplicación de Animación Para poder Realizar esta Aplicación agregaremos un formulario y le pondremos de fondo de color negro Agregaremos un Picturebox añadiéndole una imagen en este caso yo elegí la de un avión y en la propiedad de picturebox SiZeMode la Pondremos en StrechImage Por ultimo agregaremos un timer en su propiedad enabled la pondremos a true Y su otra propiedad Interval será = 50 Le damos doble clic al timer1 y codificaremos lo siguiente: Luego Presionar “F5” 1) 2) 3) Se Notara como el Avión Avanza y crece y Luego vuelve a Avanzar elvis_urrutia@hotmail.es elvis .

es elvis .net 2003/2005 Funciones Matemáticas Si se les pide hallar el valor de dos números multiplicados y mostrarlo en un label pero que los números que vallas a multiplicar sean capturados de un InputBox Suena un Poquito confuso o tedioso pero se nos va hacer fácil ahora veremos aplicando funciones y concatenación Agregaremos un formulario y dos label el primer label escribir “El Producto es:” El otro label color de fondo blanco y su propiedad BorderStyle =”Fixed3D” Y Un Botón la propiedad tex=”Multiplicar” Agregaremos un modulo Código del Modulo Código del Botón Luego Presionar “F5” elvis_urrutia@hotmail.Manual de Visual Basic.

dos botones. resta. Multiplicación.Manual de Visual Basic. pues también lo haremos con una función. Agregaremos un formulario. Division Se nos pide ingresar dos números en un textbox y haciendo clic en el botón calcular hallar la suma.net 2003/2005 Hallando Suma.es elvis . división. dos textbox y un modulo elvis_urrutia@hotmail. Resta. que contendrá 10 label. multiplicación.

Manual de Visual Basic.net 2003/2005 Control Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Textbox1 Textbox2 Button1 Button2 Propiedad Text Text Text Text Text Text Name Name Name Name Text Text Text Text Definición Numero 1 Numero 2 Suma Resta Multiplicación División Lblsuma Lblresta Lblmultiplicacion lbldivision Txt1 Txt2 Calcular Nuevo En el Modulo Codificaremos elvis_urrutia@hotmail.es elvis .

Manual de Visual Basic.net 2003/2005 En el botón1 y botton2 y crearemos una subrutina Presionar “F5” elvis_urrutia@hotmail.es elvis .

2 label y un textbox donde el primer label en su propiedad text “Ingrese una frase en minúsculas” los demás estarán en blanco El textbox su propiedad name =”txtfrase” y el label2 su name=”lblresultado” Por ultimo Agregaremos un modulo Codificación del Modulo Codificación del botón elvis_urrutia@hotmail.Manual de Visual Basic.net 2003/2005 Utilizando las Funciones de Cadena Si nos piden que de una frase cualquiera solo las primeras letras de cada palabra se conviertan a mayusculas Agregaremos un formulario con 1 botón.es elvis .

Manual de Visual Basic.net 2003/2005 Presionar “F5”

Aplicación (Simulación de una Compra) Agregaremos un formulario con 9 textbox (txtcodigo, txtcliente, txtproducto, txtprecio, txtcantidad, txtsubtotal, txtdes, txtigv, txttotal) Ingresaremos 9 Label y tres botones l

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005 Codificando en el botón calcular

Codificando en el botón salir

Application.exit,,, nos permite cerrar toda la aplicación

Codificando en el botón Nuevo

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005 Aplicación (Listbox agregar y eliminar elementos) Agregaremos un formulario que contendrá 4 label El label1en su propiedad text (“Listado de Nombres Propios”) El label2en su propiedad text (“Agregar”) El label3en su propiedad text (“Nº Items”) El label3en su propiedad text (“déjalo en blanco”) y su propiedad BackColor =”White”, su propiedad BorderStyle =”Fixed3D” Agregaremos 3 Botón El boton1en su propiedad text (“&Agregar”) El boton1en su propiedad text (“&Eliminar”) El boton1en su propiedad text (“&Salir”) & = Permitirá tener acceso con botón pulsando Alt. + la letra seguida del amperson. Si pulsamos Alt. + a accederemos al agregar.

Codificando en el botón agregar

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.es elvis .net 2003/2005 Codificando en el botón Eliminar Codificando el botón salir Aplicación Listbox Distintos Métodos Agregar un formulario que contendrá 5 label Agregar 12 botones Agregar una textbox Por ultimo agrega 4 listbox Debe quedar así elvis_urrutia@hotmail.

Manual de Visual Basic.net 2003/2005 Nota: Lo que vemos dentro del listbox no lo vallan a escribir eso se llenara en el evento load del formulario aquí les viene la codificación de cada botón Codificando en el botón agregar Codificando en el botón Eliminar En el evento load del formulario elvis_urrutia@hotmail.es elvis .

net 2003/2005 En el botón En el botón En el botón En el botón elvis_urrutia@hotmail.Manual de Visual Basic.es elvis .

Manual de Visual Basic.es elvis .net 2003/2005 En el botón elvis_urrutia@hotmail.

Manual de Visual Basic.net 2003/2005 Manejando el Mouse Que les parece si haciendo clic en un botón el puntero del mouse no podrá salir del margen del formulario y volviendo ha hacer clic en el botón el puntero del mouse volverá a su estado normal En el botón Codificamos elvis_urrutia@hotmail.es elvis .

Manual de Visual Basic.net 2003/2005 La variable estática “blnAtrapado” para saber si hay que liberar el mouse o luicerarlo x: coordenada horizontal del ángulo superior izquierdo del area cliente del formulario y: coordenada vertical del ángulo superior izquierdo del area cliente del formulario Creamos el punto que representa el ángulo superior izquierdo cliente de nuestro formulario de el area Creamos un rectangulo del tamaño de el area cliente de nuestro formulario Aquí atrapamos el cursor.es elvis . pasando como argumento el rectangulo creado Liberamos el cursor Presionen “F5” y verán que al hacer clic del mouse no puede salir fuera del margen que tiene el formulario y volviendo ha hacer clic en el botón volverá a liberarse el cursor Manejando el Evento Mouse_Move con el Método Randon Diseñar la siguiente interfaz Codificando el Botón Salir elvis_urrutia@hotmail.

net 2003/2005 Codificando en el Botón Desea un Aumento de Sueldo Presionar F5 y Vera que cada vez que usted quiera dar un clic en el botón “Desea un Aumento de Sueldo no Podrá” Manejando el (Picture box. elvis_urrutia@hotmail.Manual de Visual Basic. Filename = Nombre del archivo en el que se realiza la escritura. Propiedades Importantes Title= Es el titulo que tendrá el cuadro de dialogo InitialDirectory= Ruta Inicial que mostrara el cuadro de dialogo Filter= Filtra los archivos que mostrara el cuadro de dialogo Filterindex = El index del tipo de archivo filtrado en la propiedad alter.es elvis . DefaultExt = Extensión por defecto que se aplicara al nombre del Archivo. SavefileDialog) Cuadro de dialogo savefiledialog Este cuadro se dialogo presenta a los usuarios una forma de examinar el sistema de archivos y seleccionar el archivo que se va a guardar. OpenFileDialog.

gif) | *gif.*" elvis_urrutia@hotmail.es elvis . lblbruta2 en su propiedad backColor elijan color blanco y su propiedad BorderStyle= Fixed3D Agregar de la barra de Herramientas el control Openfiledialog1 y Savefiledialog1 Al control openfiledialog1 su propiedad name = ofdfoto Código del botón Mostrar foto1 ofdfoto.net 2003/2005 Diseñar la Siguiente Interfaz: Nota Agregar 2 Picture box su propiedad SizeMode=StretchImagen Los label lbldestino1. lblruta1.*.*.bmp|Archivos gif(*gif.Filter = "Imagenes jpg |*.Manual de Visual Basic.jpg| Imagenes bmp |*.gif | Todos los Archivos |*. lbldestino2.

Manual de Visual Basic.gif | Todos los Archivos |*.Filter = "Imagenes jpg |*.Title = "como guardar mi archivo" SaveFileDialog1.jpg| Imagenes bmp |*.net 2003/2005 Código del botón Mostrar foto2 ofdfoto.*.*.gif) | *gif.gif) | *gif.*.Title = "como guardar mi archivo" SaveFileDialog1.*.*.Filter = "Imagenes jpg |*.bmp|Archivos gif(*gif.jpg| Imagenes bmp |*.bmp|Archivos gif(*gif.gif | Todos los Archivos |*.*" Código del botón Guardar foto2 SaveFileDialog1.jpg| Imagenes bmp |*.es elvis .bmp|Archivos gif(*gif.gif) | *gif.gif | Todos los Archivos |*.*" Presionar “F5” elvis_urrutia@hotmail.Filter = "Imagenes jpg |*.*.*" Código del botón Guardar foto1 SaveFileDialog1.

net 2003/2005 He Abierto una imagen desde una unidad la ruta de visualiza y esa foto la guarde en el escritorio con el nombre “1” Los mismo hice en el otro pero lo cambie de formato la que la primera imagen que guarde esta con formato bmp y la otra esta con formato jpg Código autogenerado Si se nos pide hallar las dos últimas letras del apellido paterno.Manual de Visual Basic.es elvis . y las dos primeras letras del apellido materno y la 1ra y la 4ta letra de los nombres y la primera letra del sexo y la edad y de todo esto se debe generar nuestro código se debe auto generar al dar enter en nuestra edad Pareja ramos luis daniel mi código vendría hacer así jaraism19 Diseñar la siguiente interfaz Label7 color de fondo blanco y borderstyle=fixe d3D elvis_urrutia@hotmail.

es elvis .text Desarrollando Aplicación con Modulo y Panel Diseñar la siguiente interfaz Agregar don paneles el panel 1 estará y el panel2 estará de color azul en panel dos debe estar encima del panel1 pero sin taparlo totalmente vean el diseño que el panel1 se nota un borde y agregaremos un modulo elvis_urrutia@hotmail.Manual de Visual Basic.net 2003/2005 En el evento KeyPress Textbox5.

Width() = NombreBarraRelleno.Manual de Visual Basic. MessageBoxButtons. ByVal PosicionBarra As String) If PosicionBarra. "H") En el evento clic del botón Dim A.es elvis . A) Panel2. "Error".Visible = False Presionar “F5” Y hacer clic en el botón Generar elvis_urrutia@hotmail.Visible = True Next Panel2. Panel2. ByVal PuntoInicio As String. ByRef NombreBarraBase As Panel. B As Long For A = 0 To 400 For B = 0 To 100000 Next ActualizarBarra(Panel1.ToUpper = "H" Then NombreBarraRelleno. ByVal Valor As Integer) NombreBarraRelleno. "L".Error) End Select End Sub Sub InicializarBarra(ByRef NombreBarraRelleno As Panel.Width = 0 End If End Sub En el evento Load del formulario InicializarBarra(Panel1. MessageBoxIcon.OK.Show("El valor del parámetro PuntoInicio no es válido".Left + (Unidad * Valor) Case Else MessageBox.net 2003/2005 Codificando el modulo Sub ActualizarBarra(ByRef NombreBarraRelleno As Panel.

Text 'Para manipular archivos gráficos Imports System.IO 'Para iniciar y detener procesos del sistema local elvis_urrutia@hotmail.es elvis .Imaging 'Para manipular directorios y ficheros Imports System.Windows.Drawing Imports System.Manual de Visual Basic.Forms Imports System.net 2003/2005 Diseñar la siguiente interfaz (Creando un Explorador de Imagenes) lbImg Boton4 Boton2 Boton1 Boton3 Boton5 Agregar un TreeView propiedad name =TvDir Boton6 ListView propiedad name =LvImg Combobox propiedad name =CbDriver StatusBar con dos paneles propiedad panels clic agregar dos paneles Statusbarpanel1 y Panel2 eso es todo PicrtureBox propiedad name=pbimg Label propiedad name=lbimg Importamos los espacios de nombres Estas importaciones se escriben arriba de Public Class Form1 así debe de quedar Imports System Imports System.Drawing.

Text = "C:\" elvis_urrutia@hotmail.Nodes. _ 'mover.Environment.Diagnostics Public Class Form1 Inherits System.Clear() 'rellenar el Treeview con los nombres de los directorios.Message. mover y enumerar archivos en directorios y subdirectorios.Items.AddRange(drives) lbimg.Forms. 'obtener los directorios de la unidad seleccionada. Dim combo As New DirectoryInfo(Me. 1) Me.Text) Dim carpetas() As DirectoryInfo carpetas = combo.Icon( 'rellenar el Combobox con las letras de unidad del sistema: 'array de cadenas para contener los nombres de las unidades Dim drives() As String 'rellenar el array con las unidades lógicas del sistema drives = System.net 2003/2005 Imports System. 0. MessageBoxIcon. MessageBoxButtons.cbDrive.Manual de Visual Basic.Nodes.Windows. '3 .GetDirectories() 'limpiar el Treeview Tvdir.GetLogicalDrives() 'rellenar el Combobox dese el array Me.OK. enumerar.el texto de etiqueta especificado _ '2 . nodo = New TreeNode(carpetas2.la imagen que se ha de mostrar cuando el nodo de árbol esté _ 'sin seleccionar (índice del Imagelist).Show("Mensaje de error: " & pollo.Text. "Error al leer la unidad " & cbDrive.Add(nodo) Next 'Mostrar mensaje del error capturado Catch pollo As Exception MessageBox. cambiar de nombre.Text = "Ninguna imagen cargada" En el cbdriver_selectedIndexChanged Try 'la clase DirectoryInfo expone métodos de instancia para _ 'crear.Tvdir.Form 'Para saber si la imagen está ajustada a la ventana o a tamaño real Dim ajustar As Boolean = True ' Variable para ser utilizada en el método btAbrir_Click Dim nombreImg As String = "" En el evento load del formulario 'cbDrive = System. 'TreeNode representa a los nodos del Treeview Dim carpetas2 As DirectoryInfo Dim nodo As TreeNode For Each carpetas2 In carpetas 'el constructor de la clase Treenode inicializa una nueva instancia _ 'aquí se usa con 3 parámetros: _ '1 .la imagen que se ha de mostrar cuando el nodo de árbol esté _ 'seleccionado (índice del Imagelist).es elvis . crear y eliminar directorios.Drawing.Error) cbDrive.cbDrive.FullName. 'se utiliza la clase DirectoryInfo para operaciones típicas como copiar.

3) End Select Next End If 'si no hay elementos en el Listview.Clear() 'rellenar el Listview con los nombres de los archivos 'que cumplan la condición: terminar por las extensiones 'de archivos de imagen (se pueden cambiar las que aparecen aquí) Dim imagen As FileInfo For Each imagen In archivos 'a cada extensión se le puede asignar una imagen diferente eb el Imagelist Select Case imagen. 'TreeNode representa a los nodos del Treeview Dim subcarpetas As DirectoryInfo Dim nodo As TreeNode For Each subcarpetas In carpetas4 'el constructor de la clase Treenode inicializa una nueva instancia _ 'aquí se usa con 3 parámetros: _ '1 .Items.Add(imagen.GetDirectories() 'rellenar el Treeview con los nombres de los subdirectorios. 1) e. vaicar la caja de imagen If Me. ".Name.jpeg" Me.Items. 2) Case ".Manual de Visual Basic. '3 .lvImg.Node.el texto de etiqueta especificado _ '2 .Node.Nodes.pbimg. ".Extension Case ".Items.JPEG".es elvis .lvImg.la imagen que se ha de mostrar cuando el nodo de árbol esté _ 'seleccionado (índice del Imagelist).jpg".IsExpanded Then 'obtener los subdirectorios del nodo seleccionado Dim carpetas3 As DirectoryInfo carpetas3 = New DirectoryInfo(e. ".lvImg.Add(imagen.Node.lvImg. 0. ".la imagen que se ha de mostrar cuando el nodo de árbol esté _ 'sin seleccionar (índice del Imagelist).Name.BMP".Items.Name. nodo = New TreeNode(subcarpetas.Text) Next 'obtener los archivos del subdirectorio Dim archivos() As FileInfo archivos = carpetas3.Image = Nothing elvis_urrutia@hotmail.Count = 0 Then Me.GetFiles() 'limpiar el Listview Me.JPG".FullPath) Dim carpetas4() As DirectoryInfo carpetas4 = carpetas3.bmp" Me.net 2003/2005 End Try En el evento Tvdir_AfterSelect Try 'si el nodo del árbol no está expandido If Not e.Add(nodo.

CenterImage ajustar = True End If elvis_urrutia@hotmail.Tvdir.lbimg.es elvis .OK.pbimg. pasar a modo Ajustado If ajustar = True Then 'pasar a modo Normal (tamaño real) pbimg.Error) End Try End Sub En el evento ListView1_SelectedIndexChanged 'procedimiento descrito más abajo Call refrescarImg() 'mostrar información sobre ancho y alto de la imagen seleccionada Me.Manual de Visual Basic.SizeMode = PictureBoxSizeMode. MessageBoxButtons.StretchImage ajustar = False Else 'si la imagen está en modo Ajustado (Stretch) pbimg. MessageBoxIcon.ToString + _ " px.Image. MessageBoxIcon.lbimg.SelectedNode.Message.Image = New Bitmap(Me.Count > 0 Then 'invalidar la región gráfica del Picturebox para volver a rellenarla 'con la imagen elegida en el control Listview Me.Image.lvImg.Text) End If 'Mostrar mensaje del error capturado Catch pollo As Exception MessageBox. / Alto de imagen: " + pbimg.Invalidate() Me.SelectedItems.Width.Error) End Try Creamos una sub Rutina Private Sub refrescarImg() Try 'si hay algún elemento seleccionado en el Listview If Me.lvImg. MessageBoxButtons.Text = "Ninguna imagen cargada" End If 'Mostrar mensaje del error capturado Catch pollo As Exception MessageBox. "Error al leer imágenes ".OK. "Error al leer imágenes ".Text = "Ancho de imagen: " + pbimg.Message.FullPath & "\" & Me.Show("Mensaje de error: " & pollo.Show("Mensaje de error: " & pollo.pbimg.net 2003/2005 Me.Image Is Nothing Then 'si ya está a tamaño real.ToString + " px" En el boton1 'para que solamente lo haga si hay imagen en la caja de imagen If Not pbimg.Height.SizeMode = PictureBoxSizeMode.SelectedItems(0).

jpg)| *.Image.Image.RotateNoneFlipX) pbimg.FileName If (nombreImg." If dlgSave.EndsWith("jpg")) Then pbimg.net 2003/2005 End If En el boton2 'para que solamente lo haga si hay imagen en la caja de imagen If Not pbimg.Bitmap) End Function En el boton4 'para que solamente lo haga si hay imagen en la caja de imagen If Not pbimg.SetDataObject(pbimg.Save(nombreImg. 'La clase ClipBoard deriva de la clase Object y tiene 3 miembros: 'constructor / GetDataObject / SetDataObject Private Function fnClipboard() As Object 'Copiar imagen al portapeles 'SetDataObject lleva 2 parámetros (objeto. booleano) 'Si booleano es true.Image Is Nothing Then 'función detallada en el siguiente bloque Call fnClipboard() elvis_urrutia@hotmail.Jpeg) End If If (nombreImg.Title = "Guarda la imagen como..jpg" dlgSave. ImageFormat.Refresh() 'Recarga la imagen End If En el boton3 If Not pbimg. True) 'Variable objClipboard para contener el portapeles Dim objClipboard As IDataObject = Clipboard. el objeto queda en el portapapeles 'después de haber cerrado la aplicación Clipboard.Image Is Nothing Then dlgSave = New SaveFileDialog dlgSave.Image.RotateFlip(RotateFlipType.Image.bmp)|*. ImageFormat.Save(nombreImg.OK Then nombreImg = dlgSave.Filter = "Mapas de bits (*.EndsWith("bmp")) Then pbimg.es elvis .GetData(DataFormats.Image Is Nothing Then pbimg.GetDataObject() 'devuelve el portapapeles como mapa de bits Return objClipboard..ShowDialog() = DialogResult.bmp|Imágenes JPG (*.Bmp) End If End If End If Creamos una function 'Función que devuelve un objeto desde el portapapeles.Manual de Visual Basic.

OK) En el evento Closing del formulario en vbnet 2005 es Forclosing Dim reply As MsgBoxResult reply = MsgBox("Desea Cerrar la Aplicaciòn. MessageBoxButtons.NET.Cancel = True End If En le evento Mouse_Move del formulario Pnael2.Text = Rnd(1) elvis_urrutia@hotmail..".net 2003/2005 End If En el boton6 Dim ra As String ra = MessageBox. Fecha: 09/10/2003..Show("Desea Salir".Manual de Visual Basic.". MessageBoxButtons.es elvis .No Then e. "Salir". "Acerca de.Information) If ra = vbYes Then End End If En el boton5 'Información al usuario MessageBox.Text = Rnd(1) En el pictubrebox mouse_move Pnael2. MsgBoxStyle. MessageBoxIcon." & "Presionar YES para salir" & "Presionar NO para seguir en la Aplicaciòn.YesNo) If reply = MsgBoxResult.YesNo.".Show("Explorador de imágenes realizado en Visual Basic ." + vbCrLf + "Autor: Pareja Ramos Luis Daniel.

A este proceso se le denomina “Extender un Control”. elvis_urrutia@hotmail. Al heredar de un control existente debemos hacer uso de la referencia MyBase para invocar explícitamente al constructor de la clase base. métodos y eventos.net 2003/2005 Luego Presionar F5 Así lo intentes cerrar desde la X del formulario te preguntara si deseas cerrar o no esto lo hace el evento closing Manipulando Gráficos y Controles Extender un control existente Es posible personalizar un control Windows Forms por derivación simple y sobrescribir sus propiedades. esto porque los constructores no se heredan entre clases.Manual de Visual Basic. Al crear una nueva clase que derive de una clase control estándar tenemos la opción de utilizar los miembros de la clase base o sobrescribir sus miembros.es elvis .

El siguiente ejemplo muestra cómo crear un control personalizado que muestre un botón circular: Public Class BotonRedondo Inherits System. Alto As Integer elvis_urrutia@hotmail.Manual de Visual Basic.PaintEventArgs) MyBase.Forms.OnPaint(pe) Dim posInicialX. Un control personalizado deriva directamente de System.Forms.Windows.es elvis .Windows.LinearGradientBrush Protected Overrides Sub OnPaint(ByVal pe _ As System.net 2003/2005 Crear un Control Personalizado Un control personalizado es un control que provee elementos de interfaz de usuario haciendo llamadas al objeto Graphics de GDI+ en el evento OnPaint.Control Private Lapicero As New Pen(Color.Control.DarkGray. Para agregar un nuevo control Personalizado haga clic derecho sobre el proyecto y seleccione Agregar/Agregar nuevo elemento y seleccione como tipo de elemento Control personalizado.Windows.Forms. 5) Private Pincel As Drawing2D. posInicialY As Integer Dim Ancho.

Manual de Visual Basic.net 2003/2005

Ancho = Me.Size.Width * 0.9 Alto = Me.Size.Height * 0.9 posInicialX = (Me.Size.Width - Ancho) / 2 posInicialY = (Me.Size.Height - Alto) / 2 pe.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality Pincel = New Drawing2D.LinearGradientBrush(New _ Rectangle(posInicialX, posInicialY, Ancho, Alto), _ Color.Gray, Color.LightGray, 45) pe.Graphics.DrawEllipse(Lapicero, _ New Rectangle(posInicialX, posInicialY, Ancho, Alto)) pe.Graphics.FillEllipse(Pincel, _ New Rectangle(posInicialX, posInicialY, Ancho, Alto)) pe.Graphics.DrawString(Me.Text, Me.Font, Brushes.Black, _ (Me.Size.Width - pe.Graphics.MeasureString(Me.Text, _ Me.Font).Width) / 2, _ (Me.Size.Height - pe.Graphics.MeasureString(Me.Text, _ Me.Font).Height) / 2) End Sub End Class Debido a que este control ha sido creado como parte del mismo proyecto debemos agregarlo mediante código en el evento Load del formulario: Me.BotonRedondo1.Left = 10 Me.BotonRedondo1.Top = 10 Me.BotonRedondo1.Width = 150 Me.BotonRedondo1.Height = 80 Me.BotonRedondo1.Text = "Botón redondo" Me.BotonRedondo1.Font = New Font("Verdana", 8) Me.Controls.Add(Me.BotonRedondo1) Agregamos además un mensaje en el evento clic del botón: Private Sub BotonRedondo1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles BotonRedondo1.Click MessageBox.Show("Haz hecho clic sobre el botón personalizado") End Sub

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005

Si queremos que nuestro formulario tenga de fondo dos colores entonces diseñar la siguiente interfaz:

Doble clic en el formulario e importar los espacios de nombres y declarar a nivel de formulario dos variables (color1, color2) as color Debe quedar así

Y en el evento paint del formulario escribir el siguiente código
color1 = color1.FromKnownColor(KnownColor.Blue) color2 = color2.FromKnownColor(KnownColor.Black) Dim Rec As Rectangle = New Rectangle(New Point(0, 0), New Size(f1.Width, f1.Height)) Dim Br As LinearGradientBrush = New LinearGradientBrush(Rec, color1, color2, LinearGradientMode.Horizontal) e.Graphics.FillRectangle(Br, Rec) Br.Dispose() e.Graphics.DrawString("", New Font("Microsoft Sans Serif", 9, FontStyle.Bold), Brushes.Black, 0, 0)

Pero si ejecutan saldra error por que al objeto que le están aplicando no esta declarado y ustedes le quieren aplicar al formulario Presionar “F5”

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005 Pues debemos instaciar a nuestro formulario si para llamar al formulario hacemos lo siguiente Dim f1 as new form1 Y cuando lo queremos mostrar F1.show () Pues aca solo tendremos que instanciarlo ya sea en un modulo o a nivel de formulario Public f1 as new form1 A esa variable que representa al formulario se le esta aplicando el color F1 Ojo El objeto a agregar los colores puede ser (button, label)

La dirección de los colores va a depender de

Dim Br As LinearGradientBrush = New LinearGradientBrush(Rec, color1, color2, LinearGradientMode.Horizontal)

Puede ser Vertical ForwadDiagonal BackwardDiagonal

elvis_urrutia@hotmail.es elvis

Tag.net 2003/2005 Mostrando Mensaje Dinámico en Barra de titulo Agregar un formulario y un timer Timer propiedad enabled=”true” propiedad interval =”150” Form1 propiedad tag =”dejar 56 espacios en blanco y luego escribir tu nombre” Nota los espacios en blanco van a depender del ancho del formulario Doble clic en el timer1 y escribir lo siguiente Me.VisualBasic.Tag.es elvis .Left(Me.Tag = Mid(Me.Text = Me. 3) + Microsoft.Manual de Visual Basic.Tag Presionar “F5” elvis_urrutia@hotmail. 2) Me.

es elvis .net 2003/2005 Diseñar la siguiente Interfaz PicBoxOrig PicBoxMod Esta aplicación nos permitirá ponerle dos marcos a la imagen para tener una mejor apariencia Doble clic en el timer elvis_urrutia@hotmail.Manual de Visual Basic.

Color actualizaImgMod() Doble clic en Anchoborde actualizaImgMod() elvis_urrutia@hotmail.Enabled = True Progreso.Height / 5.Image = imgOrig End If actualizaImgMod() BotonGuardar.Width / 5 > PicBoxOrig.Visible = True Progreso.FromFile(OpenFile.Width Then PicBoxOrig.FileName) If imgOrig.GetThumbnailImage(imgOrig.Enabled = True Progreso.FileName imgOrig = Image. Nothing) Else PicBoxOrig.Color actualizaImgMod() Doble clic en el margenPicker ColorPicker.Value = 99 Doble clic en el BordePicker ColorPicker.ShowDialog() Doble clic en el save file Timer.BackColor ColorPicker.Color = ColorMargen.Value = 0 salvarImagen() Progreso.BackColor ColorPicker.ShowDialog() Doble clic en el opnefile Timer.es elvis .BackColor = ColorPicker.Width / 5. imgOrig.net 2003/2005 Botón abrir OpenFile.Color = ColorBorde.Manual de Visual Basic.Image = imgOrig.ShowDialog() ColorBorde.Enabled = True Progreso.ShowDialog() ColorMargen.Value = 99 Baton guarder SaveFile.BackColor = ColorPicker.Text = OpenFile. AddressOf ThumbNailAbort.Visible = True Progreso.Value = 0 FileNameTB.

FillRectangle(New SolidBrush(ColorMargen.es elvis .Manual de Visual Basic.Collect() Progreso. imgOrig. imgOrig.Height . imgOrig.Value = 99 Catch ex As Exception 'Nothing End Try End Sub Creamos una Funcion Private Function salvarImagen() Dim Calidad As Integer = 100 'Obtiene la lista de encoders Dim codecs() As ImageCodecInfo = ImageCodecInfo.Dispose() canvas.Image = imgBmp estiloBorde.Height + CInt(imgOrig.0 imgBmp = New Bitmap(imgOrig.Width + CInt(imgOrig.Width * porcentajeDeMargen).imgOrig. imgOrig. coordY.GetImageEncoders() 'Busca el encoder de tipo (mime-type) image/jpeg Dim imgCodInf As ImageCodecInfo = Nothing For Each codec As ImageCodecInfo In codecs elvis_urrutia@hotmail.BackColor. 0. coordY. imgOrig. imgBmp.Dispose() GC.Floor((imgBmp.Height) coordX = Math. coordX.Width) / 2) coordY = Math.net 2003/2005 Doble clic en AnchoMargen actualizaImgMod() Creamos una SubRutina Private Sub actualizaImgMod() Try Timer. imgBmp.Width. 0.Floor((imgBmp. AnchoBorde.DrawRectangle(estiloBorde.Width.Enabled = True Progreso.Value / 100.DrawImage(imgOrig.Width .Height) canvas.Height) PicBoxMod.Width. coordX.imgOrig.BackColor).Value = 0 porcentajeDeMargen = AnchoMargen.Height * porcentajeDeMargen)) canvas = Graphics.Value) canvas.Visible = True Progreso.Height) / 2) estiloBorde = New Pen(ColorBorde.FromImage(imgBmp) canvas.

encParm) Return Nothing End Function Presionar “f5” Realizaremos un Simple Captura Pantallas (Aplicando la combinación de colores) Txtnombre Button2 PicCaptura Button3 Button1 elvis_urrutia@hotmail.Quality.Param(0) = New EncoderParameter(Encoder.Save(SaveFile. CInt(Calidad)) PicBoxMod.Image.es elvis .net 2003/2005 If codec.MimeType = "image/jpeg" Then imgCodInf = codec End If Next 'Crea una coleccion de parametros de encoder (se requiere uno) Dim encParm As New EncoderParameters 'Salvando la imagen en JPG con 100% de calidad encParm.FileName.Manual de Visual Basic. imgCodInf.

Color. ctlMDI.Width.ctlMDI.Size))) End If Creamos una sub Rutina Private Sub PintarFondo(ByVal sender As Object.ctlMDI.Graphics. LinearGradientMode.Height).Vertical) e.PintarFondo(Me. New PaintEventArgs(Me. ByVal e As System.AntiqueWhite 'Aquí asignamos el manejador para pintar el fondo con degradados o lo que 'queramos.CreateGraphics. 0. 0.Location.Manual de Visual Basic.ctlMDI.net 2003/2005 Importar los siguientes espacios de nombres y declarar las siguientes variables En el Load del Formulario Dim ctl As Control 'Estamos buscando en control que representa el area cliente MDI For Each ctl In Me. ctlMDI.PaintEventArgs) Dim GradientePanel As New LinearGradientBrush(New RectangleF(0. Si solo queremos cambiar el color de fondo no hace falta. ctlMDI. ctlMDI.FillRectangle(GradientePanel.ctlMDI.Height)) End Sub elvis_urrutia@hotmail.Blue. Me.Black.Paint. ni las funciones siguientes tampoco AddHandler ctlMDI. MdiClient) ' Asignamos el color de fondo ctlMDI. New Rectangle(Me.Windows.es elvis .ctlMDI Is Nothing) Then Me.Width.Controls Try ctlMDI = CType(ctl. New RectangleF(0.BackColor = Color.Forms. AddressOf PintarFondo Catch ex As InvalidCastException End Try Next En el evento Resize del formulario If Not (Me. Color.

9. Rec) Br.Button3.Height)) Dim Br As LinearGradientBrush = New LinearGradientBrush(Rec.FromKnownColor(KnownColor.Graphics. color2.DrawString("Nombre".Button2.Orange) color2 = color2.FillRectangle(Br.White) Dim Rec As Rectangle = New Rectangle(New Point(0. color2. FontStyle. LinearGradientMode.Width. Brushes. Brushes.Bold).White) Dim Rec As Rectangle = New Rectangle(New Point(0.Width. color1.FromKnownColor(KnownColor. 9. New Size(Me.Button2. 0.FromKnownColor(KnownColor. color2.Graphics. 0).FromKnownColor(KnownColor.Manual de Visual Basic. color1.net 2003/2005 En el Evento Paint del boton1 color1 = color1.Height)) Dim Br As LinearGradientBrush = New LinearGradientBrush(Rec. New Font("Microsoft Sans Serif".Orange) color2 = color2. 0). color1. New Font("Microsoft Sans Serif". 0).Width.Width. New Font("Microsoft Sans Serif".White) Dim Rec As Rectangle = New Rectangle(New Point(0.Bold). 0) En el evento Paint del boton2 color1 = color1.Vertical) e.Dispose() e.DrawString("Capturar".Red.Vertical) e.Graphics. 0. 0.FillRectangle(Br.Graphics. New Size(Me.Height)) Dim Br As LinearGradientBrush = New LinearGradientBrush(Rec. New Size(Me. LinearGradientMode.Button1.Button1.Height)) Dim Br As LinearGradientBrush = New LinearGradientBrush(Rec.Red.Red. FontStyle. FontStyle.Graphics. Me. Me.FillRectangle(Br.Bold).Label1. New Font("Microsoft Sans Serif".Vertical) e.Label1.Graphics. Rec) Br.DrawString("Capturar Pantalla".Orange) color2 = color2.Vertical) e.DrawString("Guardar". New Size(Me.Dispose() e. 0) En el evento Paint del boton3 color1 = color1. Me. Me. Rec) Br.FromKnownColor(KnownColor. color1. 9.FromKnownColor(KnownColor. 9. FontStyle. 0.White) Dim Rec As Rectangle = New Rectangle(New Point(0.Button3.FromKnownColor(KnownColor.Dispose() e. 0) En el evento paint del Label1 color1 = color1.es elvis . Brushes.Dispose() e.Graphics. LinearGradientMode.Orange) color2 = color2. color2.Red.FillRectangle(Br.FromKnownColor(KnownColor. Rec) Br. LinearGradientMode. Brushes.Graphics.Bold). 0). 0) elvis_urrutia@hotmail.

Manual de Visual Basic.picCaptura.Image. fSize.Text.GetExtension(Me. _ MessageBoxButtons. 0.Height.FromImage(bm) ' Copiar todo el área de la pantalla gr2.Image = bm En el evento clic del boton3 If String.txtnombre.Location.txtnombre. ImageFormat. fSize) ' Asignamos la imagen al PictureBox Me. ImageFormat.OK. ImageFormat.Tiff) Case Else Me.bmp" Me.tif" Me. _ MessageBoxIcon.gif" Me.Text). fSize.Save(Me.CopyFromScreen(Me.txtnombre.es elvis . gr) ' Un objeto Graphics a partir del bitmap Dim gr2 As Graphics = Graphics.jpg" Me.Image.Size ' Creamos el bitmap con el área que vamos a capturar ' En este caso.CreateGraphics ' Tamaño de lo que queremos copiar ' En este caso el tamaño de la ventana principal Dim fSize As Size = Screen. 0.Bmp) Case ".txtnombre.Bounds.Image. _ "Guardar".Height.Jpeg) Case ".Save(Me.Location.Text.Size ' Creamos el bitmap con el área que vamos a capturar Dim bm As New Bitmap(fSize.png" Me.Text) End Select elvis_urrutia@hotmail.txtnombre.Save(Me. ImageFormat.net 2003/2005 En el evento clic de boton1 Dim gr As Graphics = Me.CopyFromScreen(0.Show("Debes indicar el nombre del fichero".Text.Gif) Case ".Png) Case ".txtnombre.Text) Then MessageBox.Text.Exclamation) Exit Sub End If ' Usar el formato según la extensión Dim ext As String = Path. Me.Image. fSize) ' Asignamos la imagen al PictureBox Me.picCaptura.Image.picCaptura.X.CreateGraphics ' Tamaño de lo que queremos copiar Dim fSize As Size = Me.FromImage(bm) ' Copiar el área de la pantalla que ocupa el formulario gr2.picCaptura.Text. 0.Save(Me.Width. ImageFormat.Save(Me.PrimaryScreen.picCaptura.Image.Width. con el tamaño del formulario actual Dim bm As New Bitmap(fSize.IsNullOrEmpty(Me.ToLower() Select Case ext Case ".picCaptura.Image = bm En el evento clic de boton2 ' Capturar toda la pantalla Dim gr As Graphics = Me. 0. 0. gr) ' Un objeto Graphics a partir del bitmap Dim gr2 As Graphics = Graphics.picCaptura.Y.txtnombre.picCaptura.Save(Me.txtnombre.

jpg” y hacemos clic en guardar ahora donde esta guardada la imagen Abran su carpeta bin /Debug y ahí se encuentra su imagen elvis_urrutia@hotmail.net 2003/2005 Presionar “F5” Ahí esta nuestra aplicación ejecutada y hemos dado clic en el botón “Capturar” y en el PicCaptura se muestra nuestra aplicación capturada Ahí esta nuestra aplicación ejecutada y hemos dado clic en el botón “Capturar Pantalla” y en el PicCaptura se muestra nuestra aplicación con todo lo que se encuentre a su detrás en este caso se muestra mi escritorio Escribimos el nombre de nuestra imagen con su extencion”prueba1.es elvis .Manual de Visual Basic.

driveListbox. FileListbox) y hagan clic en OK el windowsmediaplayer propiedad name =wmp1 Agregaremos Windows media player componen com Clic en la pestaña com components presione OK y vera su barra de herramientas con los controles agregados elvis_urrutia@hotmail.es elvis .net 2003/2005 Crearemos un Explorar y Reproductor de música y Video y un UserControl Agregar los siguientes componentes (DirlistBox.Manual de Visual Basic.

SelectedIndexChanged wmp1.close() End End If elvis_urrutia@hotmail.FileName Label1.Path & "/" & file1.Path = dir1.Path = drive1.Drive file1.Show("Desea Salir de la Aplicacion". "Salir".Manual de Visual Basic.Text En el drive1_SelectedIndexChanged dir1.es elvis .Text = file1.Path = dir1.URL = file1.Path En el botón salir evento clic Dim ra As String ra = MessageBox.YesNo) If ra = vbYes Then wmp1.net 2003/2005 Diseñar la siguiente interfaz Formulario =MDI 1) Dirlistbox1 propiedad name “drive1” 2) Drivelistbox1 propiedad name “dir1” 3) filelisatbox1 propiedad name “file1” 1 2 3 Label1 Importamos el espacio de nombre drawing Imports System.Drawing. MessageBoxButtons.Path En el file1_SelectedIndexChanged file1.Drawing2D En el evento change dir1_change file1.

OkCancel) 'If can = MsgBoxResult. ni las funciones siguientes tampoco AddHandler ctlMDI. MsgBoxStyle.BackColor = Color. New Rectangle(Me.Cancel = False End If Else e. New PaintEventArgs(Me.Yes Then If cerrar = False Then e. Me.Size))) End If Agregaremos un Modulo Public f2 as new form2 elvis_urrutia@hotmail. "Cerrar".ctlMDI. AddressOf PintarFondo Catch ex As InvalidCastException End Try Next wmp1.Show("Desea Cerrar la Aplicacion". " & " Presionar Ok para Terminar" & " la Aplicacion.ctlMDI.CreateGraphics.Cancel = True 'End If Dim cerrar As Boolean If MessageBox.Controls Try ctlMDI = CType(ctl.AntiqueWhite 'Aquí asignamos el manejador para pintar el fondo con degradados o lo que 'queramos.Paint.YesNo.ctlMDI.".es elvis .ctlMDI Is Nothing) Then Me.net 2003/2005 En el Form1_FormClosing 'Dim can As MsgBoxResult 'can = MsgBox("Desea Cerrar la Aplicacion . MdiClient) ' Asignamos el color de fondo ctlMDI.Cancel Then ' e.fullScreen = False En el Form1_Resize If Not (Me.Manual de Visual Basic.Location. o Cancelar para Retornar.Cancel = True End If End Sub En el Form1_load Dim ctl As Control 'Estamos buscando en control que representa el area cliente MDI For Each ctl In Me.PintarFondo(Me. Si solo queremos cambiar el color de fondo no hace falta. MessageBoxIcon.Information) = DialogResult.ctlMDI. MessageBoxButtons.

Manual de Visual Basic.net 2003/2005 Agregaremos un usercontrol Nos aparecerá como un formulario normal así que agregaremos un label y un timer en le label yo escribí mi nombre pero ustedes escriban lo que mas les guste Timer1 propiedad enabled =true y interval =200 elvis_urrutia@hotmail.es elvis .

Manual de Visual Basic.Visible = Not Label1.Visible elvis_urrutia@hotmail.es elvis .net 2003/2005 Doble clic en el timer1 escribir lo siguiente esto es arriba del evento del timer ósea debajo de public class User control1 es como declarar a nivel de formulario En el evento tick del timer1 Label1.

Me. New SolidBrush(Me.Text. Me.anchotexto) / 2. e.Font).LinearGradientBrush(e.Text.Label1.Font.Label1.Label1.m_ColorInicialGradiente.Label1.ClipRectangle. Me.Graphics. Me.MeasureString(Me.net 2003/2005 En el evento Paint del Label1 Dim pincel As New Drawing2D.Width e.ClipRectangle) Dim altotexto As Integer = e.altotexto) / 2 Ahora Hay que generar nuestro usercontrol Una vez generada nos vamos a nuestro formulario form2 que esta vació Le agregamos un label propiedad text =”Elaborado por:” Un Picturebox con tu foto Un botón salir Y hacemos lo siguiente Clic elvis_urrutia@hotmail.Text.Font).Height Dim anchotexto As Integer = e.Label1. Me.FillRectangle(pincel. Me.ClipRectangle.Graphics.m_ColorFinalGradiente.ForeColor).Graphics.m_AnguloGradiente) e.ClipRectangle. (e.es elvis .DrawString(Me.Width .Height . (e.Label1.MeasureString(Me.Graphics.Manual de Visual Basic.

Manual de Visual Basic.net 2003/2005 Te llevara automáticamente a la carpeta de tu archivo Y si no te lleva busca la ruta donde lo guardaste

Luego

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005

Se debe de haber generado tu dll wundowscontrollibrary1.dll Haces clic en Open Y tu user control debe esta en tu barra de herramientas y lo insertas en tu formulario2 Luego Presionar “F5”

Observaran como palpadea el nombre

Clic

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005 Antes de pasar a conexiones con base de datos les voy a enseñar unos trucos y Métodos avanzados con Novedades de vb net 2005           Imprimir el contenido de un TextBox Encriptando Datos Simular Nieve en vbnet a una imagen Conociendo el Tool strip Evento DragDrop (Mover Imágenes de un lugar a otro) Cambiar Formato de una Foto o Imagen Apagar la Pc Mostrar Una Pagina web (Web Browser / LinkLabel) Solo Números o letras en un Textbox Limpiar N cantidades de Textbox y Funcionalidades

Imprimiendo el contenido de un Textbox Diseñar la Siguiente Interfaz

elvis_urrutia@hotmail.es elvis

Drawing.Graphics.Black.Regular).DrawString(txt1. New Font("Arial".Manual de Visual Basic.Text.es elvis .net 2003/2005 Deberemos importar el Nombre de Espacio Explicación del Código En la primera línea de código estamos importando del sistema al objeto printer (Imports System. 100.Object. ByVal ePrint As PrintPageEventArgs) ePrint. FontStyle. 11.Printing) En esta otra estamos declarando una variable privada con el nombre de (ImprimirTexto) y les pasamos sus parametros Private Sub ImprimirTexto(ByVal sender As System. _ Brushes.HasMorePages = False End Sub Luego declaramos una variable Dim prnTxt As New PrintDocument Le estamos agradando el objeto a imprimir en este caso la cajita de texto que tiene su name txt1 elvis_urrutia@hotmail. 100) ePrint.

junto a eso que se le añadirá la variable privada Imprimir texto Encriptando Datos Diseñar la siguiente interfaz lblmsg Importar los espacios de nombre elvis_urrutia@hotmail. AddressOf Me.Print() Catch ex As Exception Addhandler estamos diciendo MsgBox("Ex : " & ex.ImprimirTexto prnTxt.Manual de Visual Basic.ToString) End Try nuestra variable imprima una que página.net 2003/2005 Aquí volvemos hacer una instancia de la variable hacia el objeto PrintDocument Dentro Del Botón Try Dim prnTxt As New PrintDocument AddHandler prnTxt.es elvis .PrintPage.

Vector).OpenOrCreate.Close () Catch e As Exception MsgBox (e.es elvis . Dim arqEntrada As New FileStream(inName.Write) arqSaida.SetLength(0) Dim comprimentoTotalArquivo As Long = arqEntrada.Read) Dim arqSaida As New FileStream(outName.ToInt32(totalBytesEscritos + tamanhoPacote / des. FileAccess. des. 0.Open.Message) End Try End Sub elvis_urrutia@hotmail. ByVal outName As String) Try Dim storage(4096) As Byte 'cria um buffer Dim totalBytesEscritos As Long = 8 'bytes escritos Dim tamanhoPacote As Integer 'determina o numero de bytes escritos de uma vez 'Declara os arquivos streams.Manual de Visual Basic.Write) 'fluxo de streamd While totalBytesEscritos < comprimentoTotalArquivo tamanhoPacote = arqEntrada.Length 'Define o tamanho do arquivo fonte 'cria um objeto cripto Dim des As New DESCryptoServiceProvider Dim crStream As New CryptoStream(arqSaida. FileMode. &HEE. &H16.BlockSize * des. tamanhoPacote) TotalBytesEscritos = Convert.CreateEncryptor(aChave. 4096) crStream.net 2003/2005 A nivel de Formulario 'cría un array de 8-byte para a chave privada Public aChave (7) As Byte 'preenche o vetor de inicialização com alguns valores aleatórios Private Vector() As Byte = {&H12. &H44. 0.Write(storage. &H41} Crear la Siguiente Sub Rutina Sub Cifrar(ByVal inName As String. FileMode.Read(storage. &H88. &HDD. &H15.BlockSize) End While crStream. FileAccess. CryptoStreamMode.

CryptoStreamMode.BlockSize * des.net 2003/2005 Sub Decifrar(ByVal inName As String.es elvis . {1} bytes total". 4096) crStream. FileMode.Read(storage. FileAccess. FileAccess.Close() Catch e As Exception MsgBox(e.SetLength(0) Dim comprimentoTotalArquivo As Long = arqEntrada.Write) arqSaida. ByVal outName As String) Try Dim storage(4096) As Byte Dim totalBytesEscritos As Long = 8 Dim tamanhoPacote As Integer Dim arqEntrada As New FileStream(inName. totalBytesEscritos) End While crStream.Length 'instancia um objeto para cifrar Dim des As New DESCryptoServiceProvider Dim crStream As New CryptoStream(arqSaida.Open. 0.CreateDecryptor(aChave.WriteLine("Processed {0} bytes. des. FileMode.") End Try End Sub elvis_urrutia@hotmail.Read) Dim arqSaida As New FileStream(outName.Manual de Visual Basic.OpenOrCreate. tamanhoPacote) totalBytesEscritos = Convert.BlockSize) Console.Write(storage. Vector).ToInt32(totalBytesEscritos + tamanhoPacote / des. tamanhoPacote.Message & " Verifique se esta usando a senha correta. 0.Write) Dim ex As Exception While totalBytesEscritos < comprimentoTotalArquivo tamanhoPacote = arqEntrada.

Text) 'cria a chave Decifrar(arquivo_origem..Text.. se tiver o arquivo ja foi cifrado If caminhoArquivo.1) Else caminhoArquivo = TextBox1. arquivo_destino) lblmsg.net 2003/2005 Codificando Botón “Inicia proceso de cifragendo archivo” Dim arquivo_destino." & ext arquivo_destino = caminhoArquivo criaChave(TextBox2.es elvis .Length .Text 'remove o "_#": caminhoArquivo = caminhoArquivo.Text = "DeCifragem terminada..Text = "" Or TextBox2.Text = "" Then MsgBox ("Você precisa informar um nome de arquivo e uma seenha." & ext arquivo_destino = caminhoArquivo criaChave(TextBox2." Exit Sub End If 'cifrar 'não há "_#" no final do arquivo .") -1 decifrando ( o nome do arquivo 'extensao do arquivo 'o caminho do arquivo menos a 'a localização do pronto no 'se não tem extensão retorna If n <> -1 Then 'extrai a extensão ext = TextBox1.Substring(0.Text End If 'verifica se existe '_#' no final do arquivo.Manual de Visual Basic.Text = "Cifragem do arquivo encerrada. caminhoArquivo.IndexOf(". TextBox1."): Exit Sub 'verifica se esta cifrando ou termina com "_#") Dim ext As String Dim caminhoArquivo As String extensão Dim n As Integer caminho do arquivo n = TextBox1.Substring(caminhoArquivo.Text) 'cria a chave Cifrar(arquivo_origem.Text.Substring(n + 1) caminhoArquivo = TextBox1.2) = "_#" Then 'este arquivo sera cifrado 'decifrar arquivo_origem = TextBox1. vamos cifrar arquivo_origem = TextBox1.Text.ext..Substring(0.Length . arquivo_destino) lblmsg.Length .Text." elvis_urrutia@hotmail.2) If ext <> "" Then caminhoArquivo &= ". arquivo_origem As String 'verifica se foi entrado um nome de arquivo If TextBox1.Text 'acrescenta o compose the Cifrared file's filepath by appending "_#": caminhoArquivo &= "_#" If ext <> "" Then caminhoArquivo &= ".Length .

Manual de Visual Basic. arrByte.Filter = "Todos os arquivos (*.Text = OpenFileDialog1.*" lblmsg.es elvis .Enabled = True ‘nomeArquivoSaida () End If En el evento load del formulario Button2.Length.ShowDialog () = DialogResult.Enabled = False Presionen “F5” Creen un documento de texto pónganle cualquier nombre y escriban “hola” solo un ejemplo Cuando hagan clic en el Botón iniciar proceso elijan su archivo de texto y pónganle su nombre en el cuadro que queda vació automáticamente miren su escritorio se genero otro documento de texto con el nombre pero ábranlo y miren pues esta encriptado elvis_urrutia@hotmail.OK Then TextBox1. strKey.net 2003/2005 Creamos una sub rutina para la clave 'cria a chave e o hash da senha Sub criaChave(ByVal strKey As String) ' array de Byte para tratar a senha Dim arrByte(7) As Byte Dim AscEncod As New ASCIIEncoding Dim i As Integer = 0 AscEncod.Text = "" If OpenFileDialog1.FileName Button2. i) 'obtem o valor do hash da senha Dim hashSha As New SHA1CryptoServiceProvider Dim arrHash() As Byte = hashSha.ComputeHash(arrByte) 'poe o valor do hash na chave For i = 0 To 7 aChave(i) = arrHash(i) Next i End Sub Codificando el Botón Procurar OpenFileDialog1.GetBytes(strKey.Title = "Seleccione o arquivo para Cifrar/Decifrar" OpenFileDialog1. i.*)|*.

Width hgt = PictureBox1.ClientRectangle.Height elvis_urrutia@hotmail.Manual de Visual Basic.es elvis .ClientRectangle.net 2003/2005 Simular Nieve sobre una Imagen Diseñar la Siguiente interfaz Timer1 propiedad = enabled=true y interval=1 Mucho ojo se podrá dejar caer la nieve sobre cualquier imagen pera esta tendrá que tener fondo negro ósea un poco trabajoso llevarlo a paint y pintarlo de negro o si tiene otro programa yo uso el PhotoImpresion 5 le explico como es Abres tu foto recortas solamente tu foto y todo a su alrededor lo pintas de negro una vez hecho lo guardas y lo copias en tu carpeta donde esta en bin y así caerá la nieve sobre tu foto Agregaremos un Picturebox su color de fondo será negro Declararemos a nivel de formulario 'Variables globales Dim intlin(110) As Integer ' Array el cual contiene la línea de cada copo de nieve Dim intcol(110) As Integer ' Array el cual contiene la columna de cada copo de nieve Dim ContNumCopo As Integer ' Contador de Copos Dim bm As Bitmap En el evento load del formulario Dim wid As Integer Dim hgt As Integer Dim x As Integer wid = PictureBox1.

1.bmp esta en el bin” PictureBox1.Height Me.ToArgb = -16777216 Then Call borrar() intcol(ContNumCopo) = intcol(ContNumCopo) + 1 ElijeLado = True ElseIf clr1.ToArgb = -16777216 Or clr.GetPixel(intcol(ContNumCopo) + 1.1 ElijeLado = True ElseIf clr1.Color Dim Lado(110) As Integer ElijeLado = False 'Ponemos aleatoria menté el lado por el cual rodara el copo Lado(ContNumCopo) = Rnd() * 1 If Lado(ContNumCopo) = 0 Then clr = bm.ToArgb = 0 Or clr.Manual de Visual Basic.Height = bm.Width = bm.Width PictureBox1.GetPixel(intcol(ContNumCopo) .Color Dim clr1 As System.ToArgb = -16777216 Or clr1.Height + 26 'Colocamos aleatoria menté un copo en una columna For x = 0 To 110 : intcol(x) = Int(Rnd() * PictureBox1.1 ElijeLado = True End If clr = bm. intlin(ContNumCopo) + 1) clr1 = bm. intlin(ContNumCopo) + 1) If clr.ToArgb = 0 Then Call borrar() intcol(ContNumCopo) = intcol(ContNumCopo) .Width) : Next x intlin(ContNumCopo) = 0 Randomize() Crearemos una funcion Function ElijeLado() Dim clr As System. intlin(ContNumCopo) + 1) clr1 = bm.Drawing.ToArgb = 0 Then Call borrar() intcol(ContNumCopo) = intcol(ContNumCopo) + 1 ElijeLado = True End If End If End Function Else elvis_urrutia@hotmail.ToArgb = -16777216 Then Call borrar() intcol(ContNumCopo) = intcol(ContNumCopo) .Height = bm.Drawing. intlin(ContNumCopo) + 1) If clr.1.es elvis .GetPixel(intcol(ContNumCopo) .ToArgb = 0 Or clr1.net 2003/2005 'Creamos el Bitmap bm = New Bitmap("Dibujo1.bmp") Esta imagen con el nombre “Dibujo1.Width + 8 Me.GetPixel(intcol(ContNumCopo) + 1.Width = bm.

intlin(ContNumCopo) . intlin(ContNumCopo).ToArgb <> -16777216 And clr.SetPixel(intcol(ContNumCopo).SetPixel(intcol(ContNumCopo). Color.Drawing.1 > 0 Then bm.Color For x = 1 To 50 'Le ponemos un bucle para que aumente la velocidad de la caída de copos ContNumCopo = ContNumCopo + 1 ' Aumentamos la variable del array para pasar de copo If ContNumCopo = 110 Then ContNumCopo = 0 Try intlin(ContNumCopo) = intlin(ContNumCopo) + 1 'Incrementamos la y(Linea) del copo actual bm. intlin(ContNumCopo) . intlin(ContNumCopo) + 1) 'Capturamos el color actual If clr. Color. Color.Height .SetPixel(intcol(ContNumCopo).Black) End Sub Doble Clic en el Timer evento Tick Dim x As Integer Dim clr As System.1 > 0 Then bm.es elvis .White) 'Pintamos el copo de blanco If intlin(ContNumCopo) >= PictureBox1. Color.ToArgb <> 0 Then If ElijeLado() = False Then intlin(ContNumCopo) = 0 intcol(ContNumCopo) = Int(Rnd() * PictureBox1. intlin(ContNumCopo).SetPixel(intcol(ContNumCopo). PictureBox1.1.Image = bm Next x elvis_urrutia@hotmail.GetPixel(intcol(ContNumCopo).Black) bm.1 Then intlin(ContNumCopo) = 0 intcol(ContNumCopo) = Int(Rnd() * PictureBox1.Width) End If Else If intlin(ContNumCopo) .Width) End If clr = bm.Manual de Visual Basic.ClientRectangle.net 2003/2005 Creamos una sub Rutina Sub borrar() 'Borramos para dar la sensación de movimiento If intlin(ContNumCopo) .Black) End If Catch End Try ' Mostramos la Imagen.ClientRectangle.1.

Manual de Visual Basic.net 2003/2005 Presionar “F5” El Tool Strip Es una de las Nuevas Herramientas que nos trae visual Studio 2005 Nos permite crear barra de herramientas en forma sencilla y rápida elvis_urrutia@hotmail.es elvis .

Manual de Visual Basic. DropDownButton. progressbar Agregamos un Button Clic derecho y le podremos agregar una imagen elvis_urrutia@hotmail. label. Separador. SplitButoon. Combobox.net 2003/2005 Haciéndole un clic Nos brinda diferentes opciones Como Button. textbox.es elvis .

m_MouseIsDown = True End If En el PictureBox1_MouseMove If m_MouseIsDown Then ' Initiate dragging and allow either copy or move.Copy Or DragDropEffects.AllowDrop = True En el PictureBox1_MouseDown If Not PictureBox1.net 2003/2005 Utilizando DragDrop Nos permitirá manejar el Botón izquierdo como derecho del mouse para poder mover una imagen de un lugar a otro en este caso de un picturebox a otro Diseñar la siguiente interfaz Agregar dos Picture box (Picturebox1 Picturebox2) Picture box1 Picture box2 Declarar a nivel de formulario Private m_MouseIsDown As Boolean = True En el evento load ' Enable dropping.AllowDrop = True PictureBox1. PictureBox1. DragDropEffects.Move) elvis_urrutia@hotmail.Image.Manual de Visual Basic.DoDragDrop(PictureBox1.Image Is Nothing Then ' Set a flag to show that the mouse is down.es elvis . PictureBox2.

KeyState = 8 Then PictureBox1. delete the source picture.Copy Or DragDropEffects.None End If En el PictureBox2_DragDrop ' Assign the image to the PictureBox.Move End If Else e.Bitmap) Then ' Check for the CTRL key.Image = Nothing End If En el PictureBox2_MouseDown If Not PictureBox2.Data.Data. PictureBox1. If Not e.KeyState = 9 Then e.Bitmap) ' If the CTRL key is not pressed.Image = e.GetDataPresent(DataFormats. If e.Effect = DragDropEffects.KeyState = 8 Then PictureBox2.Image = Nothing End If elvis_urrutia@hotmail.Move) End If m_MouseIsDown = True Catch ex As Exception ' MessageBox.Image. If Not e.Effect = DragDropEffects. DragDropEffects. PictureBox2.Manual de Visual Basic. PictureBox2. delete the source picture.Show(ex.GetData(DataFormats.Image Is Nothing Then ' Set a flag to show that the mouse is down.GetData(DataFormats.Data.Bitmap) ' If the CTRL key is not pressed.Effect = DragDropEffects.Image = e.Message) End Try En el PictureBox1_DragDrop ' Assign the image to the PictureBox.Copy Else e.es elvis .DoDragDrop(PictureBox2. m_MouseIsDown = True End If En el PictureBox2_MouseMove Try If m_MouseIsDown Then ' Initiate dragging and allow either copy or move.net 2003/2005 End If m_MouseIsDown = False En El Picturebox2_Dragenter If e.

Effect = DragDropEffects.Bitmap) Then ' Check for the CTRL key.es elvis .KeyState = 9 Then e.Copy Else e.Move End If Else e.Effect = DragDropEffects. If e.GetDataPresent(DataFormats.None End If Al picture box 1 agregarle una imagen y su piroedad sizemode=strechimage Presionar “F5” Haga clic derecho y sin soltar el mouse llevelo hasta el picturebox2 Los mismo pero llevo de regreso al picturebo1 elvis_urrutia@hotmail.Data.Effect = DragDropEffects.net 2003/2005 En el PictureBox1_DragEnter If e.Manual de Visual Basic.

Jpeg) MsgBox ("El Cambio de formato fue Realizado") El código nos dice que en nuestra unidad c tenemos una imagen con formato gif y haciendo clic la vamos a cambiar a jpg aunque no parezca muy interesante solo hecho este ejemplo para que tengan idea como se trabaja con imágenes Pues el nombre de la imagen esta aca Con ese nombre se va a guardar elvis_urrutia@hotmail.es elvis .gif") Path.Drawing. System.ImageFormat.Imaging.net 2003/2005 Cambiar el Formato de Una Imagen Para que esta aplicación funcione debe de tener una imagen en la unidad c o d dependiendo de la ruta que le de usted en el codigo pero veamos para que me entiendan Diseñar la Siguiente Interfaz Hacemos doble clic en el Botón Dim StrFileToConvert as String = "c:\nombre_foto" Dim Path As New Bitmap ("c:\foto.Manual de Visual Basic.jpeg".Save (StrFileToConvert + ".

Manual de Visual Basic.Start ("shutdown.es elvis . " -s -t 0 -f")” Diseñar La siguiente interfaz Declararemos una funcion Private Declare Function ExitWindowsEx& Lib "user32" (ByVal uFlags&.exe".net 2003/2005 Solo Apagar la PC Esta es la otra forma pero mas complicada Importar Imports System.Diagnostics Boton_clic escribir “Process. ByVal dwReserved&) Doble clic en el Botón Dim i as Integer i = ExitWindowsEx (1. 0&) 'Apaga el equipo Mostrando una Pagina de internet Utilizaremos un Web Browser que se encuentra en la caja de herramientas Diseñar la siguiente interfaz elvis_urrutia@hotmail.

net 2003/2005 Nota si al insertar el web Browser ocupa todo el formulario simplemente vallan a su propiedad dock =”None” El web browser tiene la propìedad Nvigate donde especificaremos donde queremos navegar En el boton ir webrowser1.es elvis . MsgBoxStyle.GoForward() Catch Er As Exception MsgBox(Er.Message.Message. MsgBoxStyle. "Información") End Try En el evento KeyPress del textobx1 If Asc(e.GoBack() Catch Er As Exception MsgBox(Er.KeyChar) = 13 Then WebBrowser1.Information. "Información") End Try En el Botón adelante Try WebBrowser1.navigate(textbox1.Information.Text) End If Luego Presdionar “F5” O tal vez le agregamos otro boton o en un manin menu puede ser Para poder ver las propiedades de la pagina web elvis_urrutia@hotmail.Navigate(TextBox1.ToString.text) Al hacer clic en el Botón nos llevara a la dirección que hallamos escrito en le textbox En el Botón atrás Try WebBrowser1.Manual de Visual Basic.

Url Is Nothing Then WebBrowser1.es elvis .net 2003/2005 Doble clic en el boton “Propiedades” If Not WebBrowser1.google.Manual de Visual Basic.comy hice clic en “ir” Luego en propiedades elvis_urrutia@hotmail.ShowPropertiesDialog() End If Ejecutemos la aplicación Yo no cuento con internet pero vena Ingrese en el textbox1 www.

net 2003/2005 Veremos otra opcion mas (Actualizar) Ya les dije si quieren lo pueden hacer ne un menu para que se vea mas presentable Doble clic en el boton Actulizar 'volver a cargar la página 'si textbox1 no está vacío If Not (TextBox1.Url.es elvis .Text = "") Or Not WebBrowser1.Equals("about:blank") Then WebBrowser1.Refresh() End If Aplicando el LinkLabel Que se encuentra en la barra de herramientas elvis_urrutia@hotmail.Manual de Visual Basic.

com") Solo Números en un Textbox Diseñas la siguiente interfaz 1) Lo podremos hacer de dos formas aplicando una funcion y codificando en En el evento KeyPress 2) La otra forma Solamente codificando en el evento KeyPress Mostrando la Primera Forma 1) con funcion Private Function soloNumeros(ByVal kcode As Int16) As Boolean If (kcode >= 48 And kcode <= 57) Or kcode = 8 Then Return False Else Return True End If End Function En el evento KeyPress del Textbox1 e.net 2003/2005 Diseñar la Siguiente Interfaz En la propiedad text del linkLabel escribiremos www.Diagnostics.Manual de Visual Basic.KeyChar))) elvis_urrutia@hotmail.com Hacemos doble clic en el LinkLabel System.google.Handled = soloNumeros(System.es elvis .ToInt16(Asc(e.Convert.Start ("http://www.google.Process.

es elvis .KeyChar) Then e.Handled = True End If Tpis Si queremos limpiar todo un grupo de textbox sin estas haciendo textbox1.KeyChar.text =”” No importa la cantidad de textbox que sean elvis_urrutia@hotmail.Handled = False Else e.Handled = True End If Solo Letras en un Textbox Diseñar la Siguiente Interfaz Codificando en el Evento Key Press del textbox If e.IsControl(e.KeyChar) Then e.KeyChar) Then e.Manual de Visual Basic.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsDigit(e.KeyChar.IsLetter(e.KeyChar) Then e.Handled = False ElseIf e.Handled = False Else e.IsSeparator(e.KeyChar.Handled = False ElseIf e.cluear o textbox1.net 2003/2005 2) Solo en el evento KeyPress En el evento KeyPress del Textbox1 If e.IsControl(e.KeyChar.

Controls If TypeOf x Is TextBox Then x.es elvis .Manual de Visual Basic.text = "" End If Next Si vallamos a escribir una contraseña no se debe mostras lo que vallamos a escribir en este caso iremos a la propiedad PasswordChar =* del textbox Y si queremos agrandar el texbox su prpiedad Multilne=true elvis_urrutia@hotmail.net 2003/2005 Diseñas la siguiente interfaz El codigo lo pueden hacer en una sub rutina osea asi Sub Limpiar Codigo codigo codigo End sub y doble clic en el boton nombre de sub rutina “Limpiar” o simplimente codificar en el boton Codificando en este caso doble clic en el boton Dim x As Object For Each x In Form.ActiveForm.

vistas..net 2003/2005 Empesaremos con Bases de Datos Como a algunas personas todavia les enseñan a utilizar access 2203 2007 con vb net veremos un poco de coneccion con access pero no explicare como crear una base de datos con access ni tabla eso ya deben de saber Tambien conectaremos a sql server 2005 ahí si explicare la creacion de base de datos.. no esta disponible en tiempo de diseño CurrentRowIndex. tipos. Como vamos a trabajar con ms-access para poder traer la data hacia vb.Habilida y deshabilita el control CurrentCell.Erginw.etc) Imports System.Data.Manual de Visual Basic.Especifica si el control es de solo lectura Enabled.ect empesemos Mostraremos el control Datagridview Propiedades Principales Name ..OleDb Coconiendo las clases mas Usadas OleDbConnection OleDbDataAdapter OleDbDataReader OleDbCommand OleDbCommandBuilder elvis_urrutia@hotmail..Obtiene o establece la celda que tiene el foco .Obtiene o establece el indice de la fila seleccionada Item.Obtiene o establcece el indice de la celda unbicada en la fila y la columna especificados...net Tendremos que importar el nombre OleDb se utiliza para el mismo sql..Obtiene o establece el origen de datos para el que muestra datos la cuadratica ReadOnly. Especifica el nombre del control DataSource. tablas.store procedure.es elvis .

El tiempo predeterminado es de 15 segundos Es el nombre de la base de datos. Es usado solamente con objetos OlDbConnection. Es el lapso de tiempo de espera (en segundos) para una conexión a un servidor antes que genere una execion.net 2003/2005 OleDbConnection Representa una conexion abierta con una base de datos de Access esta clase no se puede heredar Propiedades Principales ConnectionString Obtiene o establece la cadena de conexión utilizada para abiri una base de datos DataBase Obtiene el nombre de la base de datos actual o de la que se va a utilizar una vez que se abre la coneccion DataSource Obtiene el nombre de la instancia Access con la que se estabelce la conexión Metodos Principales Clase Cierra la conexión con la base de datos .es elvis . La contraseña de usuario para la cuenta Sql Sever Este parámetro determina si es o no una conexión segura. Para OleDb Es el nombre del servidor Sql Server que se usara para abrir una conexión o el nombre del archivo de una base de datos de Microsoft Access. Es el nombre de usuario para inicio de sesión. False o SSPI (SSPI es equivalente a True) elvis_urrutia@hotmail.Manual de Visual Basic. este es el metodo recoomendado para cerrar conexiones abiertas Dispose Sobrecargado Libera los recursos Utilizados por Component. Los valores posibles son True. Open Abre una conexión de la base de datos con la configuracion de propiedades especificada en connectionString Parámetro Provider Timeout Inicial Catalog Server ó Data Source User Id ó Uid Password Integrated Security Descripción Establece o retorna el nombre del proveedor para la conexión.

net 2003/2005 OleDbDataAdapter Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar un DataSet y actualizar una base de datos de SQL Server. InsertCommand Obtiene o establece una instrucción de para insertar nuevos registros en el origen de datos. Agrega filas a DataSet o las actualiza para que coincidan con las filas del origen de datos. Reemplazado. UPDATE o DELETE respectivas para cada fila insertada. Métodos Principales: Fill Sobrecargado. DeleteCommand Obtiene o establece una instrucción de para eliminar registros de un conjunto de datos. Dataset Es un contenedro de tablas Nos va a permitir almacenar varias tablas Pero veamos ne el ejemplo elvis_urrutia@hotmail. Update Sobrecargado. Propiedades Principales: SelectCommand Obtiene o establece una instrucción de para seleccionar registros en el origen de datos.es elvis . Esta clase no se puede heredar.Manual de Visual Basic. actualizada o eliminada en DataSet. UpdateCommand Obtiene o establece una instrucción de para actualizar los registros del origen de datos. Llama a las instrucciones INSERT. Libera los recursos utilizados por Component. Dispose Sobrecargado.

Retorna Trae si existe una fila y False si llego al final de las filas. podría necesitar convertir el valor antes de utilizarlo en su código. El método ExecuteReader del objeto Command devuelve un objeto DataReader. GetInt32. elvis_urrutia@hotmail. RecordsAffected Obtiene el número de filas cambiadas. insertadas o eliminadas por la ejecución Métodos Principales: Close Cierra el objeto OleDbDataReader. GetDouble.es elvis . Cuando ejecuta un objeto command que devuelve un conjunto de filas. Cuando procesa un conjunto de resultados en un DataReader. Read Método usado para cargar la siguiente fila. FieldCount Obtiene el número de columnas de la fila actual. debería cerrar el DataReader tan pronto finalice el proceso con el conjunto de resultados. Puede ejecutar cualquier sentencia Select o un Procedimiento Almacenado que contiene una sentencia Select. Por ejemplo GetDateTime. Debido a que el valor es retornado en su formato nativo. etc. El objeto DataReader proporciona consistentes métodos de tipos de datos para obtener el valor de una columna de la fila actual. Por esta razón. También podrá obtener meta datos sobre las filas. Propiedades Principales: Item Propiedad que obtiene el valor de una columna con un nombre especifico o un índice. tales como el nombre de la columna y su tipo de dato. la conexión asociada se mantiene ocupada hasta que se cierre el DataReader. puede usar un DataReader para recoger el conjunto de filas. GetXxxx El objeto DataReader tiene implementado consistentes metodos que permite leer una columna u convertir su valor en un tipo de dato especifico.net 2003/2005 OleDbDataReader El objeto DataReader es un cursor de tipo forwar-only que captura una secuencia de filas.Manual de Visual Basic.

Este método devuelve el número de filas afectadas. Connection Obtiene o establece el OleDbConnection que utiliza esta instancia de OleDbCommand.net 2003/2005 Utilice estos metodos cuando conosca el tipo de dato del conjunto de registros para minimizar el tiempo de conversión de tipos requerido por su código y aplicación. OleDbCommand Que se ejecuta en una base de datos de Access. Esta clase no se puede heredar. Ahora Realizaremos una Conexión a una base de daos en Access Para esta Crear una Base de datos que se llame “Numero” Su extenciom de las Base de datos en Access es mdb Luego crearemos una tabla con el nombre “Datos” Agreguen dos campos Contactos y Números. En el campo Contactos Irán los nombres de sus amigos(a) y en el campo Numero Irán Números su numero telefónico y esa Base de datos la Guardan en la Unidad “C” de su disco duro Diseñar la siguiente interfaz Agregar un DatagridView Que se enceuntra en la barra de Herramientas elvis_urrutia@hotmail.Manual de Visual Basic. Principales Propiedades: CommandText Obtiene o establece el procedimiento almacenado o la instrucción que se ejecuta en el origen de datos. ExecuteScalar Ejecuta un comando que retorna un valor sencillo ExecuteNonQuery Ejecuta un comando que actualiza la base de datos o cambios a la estructura de la base de datos. Métodos Principales: ExecuteReader Ejecuta un comando que retorna un conjunto de filas (DataReader).es elvis .

<campo2>.fill (ds.clear esto quiere decir que estamos limpiando el dataset por que si no ponemos eso al hacer clic en mostrar contactos mas de una vez se va a llenar el datagridview se van a duplicar los datos Si se dan cuenta estamos importando el names space imports system.tables(0) elvis_urrutia@hotmail. Provider viene hacer el proveedor de donde nosotros consumimos los datos en este caso es Access.etc.”com”) ese viene hacer un nombre de tu tabla virtual con el cual depuses lo llamaras com el data gris Por eso datagridview1.datasource = ds.tables (“com”) Como el dataset almacena varias tablas por eso ds.Manual de Visual Basic. data source ahí se escribe la ruta donde esta nuestra base de datos con su extensión Otra variable da de tipo oledbdataadapter ahí especificamos los campos que queremos que se muestren en nuestro datagridView si solo escribimos “select Contactos Form dato”.datasource=ds.tables=nombre de tabla al que deseas llamar Si no le pones nombre da.. .data.oldb Creamos una variable cn de tipo conexión. después del Form se escribe el nombre de nuestra tabla que en este caso viene hacer Datos cerramos las comillas cn por que por que cn esta nuestra conexión Declaramos un ds as new dataset Doble clic en el Botón Ponemos un try catch por si ocurre alguna excepción Da que es nuestro adaptador utilizamos su método fill Vamos da.es elvis . cn) solo se va a mostrar nuestro campo contactos Select <campo1>.fill (ds) tomar el valor inicial que es 0 Y lo invocaríamos así datagridview1.net 2003/2005 Ojo debajo de try escribimos ds.

Manual de Visual Basic. command) Al ejemplo anterior le agregaremos un Botón y dos cajistas de texto Textbox1 propiedad name=txtnombre Textbox2 propiedad name=txtnumero Así debe quedar la interfaz elvis_urrutia@hotmail.net 2003/2005 Presionen “F5” y hagan clic en el boton Podemos observar el nombre de nuestros campos con los registros guardados Si no guardaste ni uno solo se mostraran los campos Insertando Registros (Inser into.es elvis .

Show("Contacto Agregado".DataSource = ds.Message) End Try Después de insert into especificamos la tabla” datos” donde queremos insertar luego entre paréntesis especificamos los campos de la tabla después de valúes especificamos de donde queremos capturar los datos a guardar como es de un cajita de texto apostrofe ‘” & referencia & “ ‘ y se cierra con comillas y apostrofe Luego se ejecuta la consulta “ExecuteNonQuery” después mandamos un mensajito diciendo que si se guardaron los datos o no Luego cerramos la conexión Si los dejamos hasta ahí va a guardar pero no se va a visualizar los datos en el datagridview1 Por eso volvemos a limpiar el ds y volvemos a adaptar el datagridview y cuando se guarden los datos se mostraran los datos guardados en el datagrid elvis_urrutia@hotmail.es elvis .net 2003/2005 Codificamos en el boton Guardar Try Dim cmd As New OleDbCommand("insert into datos (Contactos. MessageBoxButtons.Numeros) values('" & txtnombre. cn) cn.Clear() da. "Registro Completado".Text & "' .Close() ds. "guardados") DataGridView1.Manual de Visual Basic. '" & txtnumero.Open() cmd.Fill(ds.Show(ex.ExecuteNonQuery() MessageBox.OK) cn.Tables("guardados") Catch ex As Exception MessageBox.Text & "')".

MessageBoxIcon.Tables("eliminados") Catch ex As Exception MessageBox. cn) cn.es elvis .Manual de Visual Basic.DataSource = ds.Information) cn.Text & "'".ExecuteNonQuery() MessageBox. command) A esa misma aplicación le agregaremos un Botón mas la interfaz deberá quedar de la siguiente manera Codificando el Botón Eliminar Try Dim cmd As New OleDbCommand( _ "delete from datos where contactos = '" & txtnombre.net 2003/2005 Eliminando Registros (Delete. "ELIMINADOS".Message) End Try Después de la cláusula delete especificamos nuestra tabla después del where especificamos por que campo queremos eliminar nuestros datos pusimos contactos quiere decir que si queremos eliminar un registros en el txnombre tendremos que escribir el nombre y pulsar eliminar elvis_urrutia@hotmail.Open() cmd. MessageBoxButtons.OK.Clear() da.Fill(ds.Close() ds.Show(ex.Show("LOS DATOS FUERON ELIMINADOS". "eliminados") DataGridView1.

Manual de Visual Basic.es elvis .net 2003/2005 Escribimos el Nombre a borrar en este caso “Mi Numero” y pulsamos clic en eliminar elvis_urrutia@hotmail.

net 2003/2005 Ahí acabaremos con Access las demás conexiones las veremos con sql espesemos Comenzaremos con Sql Server 2005 elvis_urrutia@hotmail.es elvis .Manual de Visual Basic.

net 2003/2005 O también desde Ejecutar escribimos sqlwb Hacemos clic en Connect La interfaz que nos ofrece tu tipo de conexión será CASA830E44C75F\SQLEXPRESS elvis_urrutia@hotmail.Manual de Visual Basic.es elvis .

net 2003/2005 Y si nos sale error al intentar conectar el sql entonces inicio / ejecutar /services.es elvis .Manual de Visual Basic.msc Clic derecho Propiedades si esta en manual entonces cámbielo a automático Vuelva hacer clic derecho y haga clic en iniciar Y vuelva a conectar el sql elvis_urrutia@hotmail.

es elvis . · Los DML que permiten generar consultas para ordenar. filtrar y extraer datos De la base de datos.Manual de Visual Basic. También se Puede utilizar con el método Execute para crear y manipular directamente las bases De datos Jet y crear consultas SQL de paso a través para manipular bases de datos Remotas cliente . operadores y funciones De agregado. utilizado por el motor de base de datos de Microsoft Jet.servidor. Actualizar y manipular las bases de datos. cláusulas. Comandos Existen dos tipos de comandos SQL: · Los DLL que permiten crear y definir nuevas bases de datos. campos e Índices. elvis_urrutia@hotmail. SQL se utiliza Para crear objetos QueryDef. Estos elementos se combinan en las instrucciones para crear.net 2003/2005 Introducción El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos Normalizado. como el argumento de origen del método OpenRecordSet y como la propiedad RecordSource del control de datos. Componentes de sql El lenguaje SQL está compuesto por comandos.

es elvis .Manual de Visual Basic.net 2003/2005 Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que Desea seleccionar o manipular. Operadores Lógicos Operadores de Comparación elvis_urrutia@hotmail.

CREATE DATABASE (Transact-SQL) Crea una nueva base de datos y los archivos que se utilizan para almacenar la base de datos. FILENAME = 'nombreArchivoSO'.Manual de Visual Basic. Sintaxis: CREATE DATABASE NombreBaseDatos [ ON [PRIMARY NAME = nombreArchivoLógico. MAXSIZE = { tamañoMáximo | UNLIMITED } . SIZE = tamaño. crea una instantánea de base de datos. FILEGROWTH = incrementoCrecimiento) [. SIZE = tamaño. o adjunta una base de datos a partir de los archivos separados de una base de datos creada anteriormente.…n] [COLLATE nombre_collation] [ FOR LOAD | FOR ATTACH ] elvis_urrutia@hotmail.net 2003/2005 Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de Registros para devolver un único valor que se aplica a un grupo de registros. FILENAME = 'nombreArchivoSO'. MAXSIZE = { tamañoMáximo | UNLIMITED } .…n] ] [ LOG ON NAME = nombreArchivoLógico. FILEGROWTH = incrementoCrecimiento) [.es elvis .

el primer archivo enumerado en la instrucción CREATE DATABASE se convierte en el archivo principal. SQL Server genera un nombre lógico al anexar un sufijo a nombreBaseDatos. LOG ON Especifica que los archivos de registro de la base de datos (archivos de registro) se han definido explícitamente. NAME Especifica el nombre lógico del archivo. Se debe especificar la ruta de acceso y nombre de archivo que el sistema operativo utiliza cuando crea la base de datos. Cuando este parámetro no es especificado para un archivo secundario o de registro SQL Server automáticamente le asigna 1 MB. Si no se especifica LOG ON.net 2003/2005 ARGUMENTOS: nombreBaseDatos Es el nombre de la nueva base de datos. La ruta de acceso debe especificar un directorio en el servidor sobre el que se instalo SQL Server. ON Especifica que los archivos de disco utilizados para almacenar la parte de datos (Archivos de datos) se han definido explícitamente. elvis_urrutia@hotmail. Este nombre es el utilizado para referenciar al archivo en las sentencias del Transact-SQL que se ejecuten después. Si no se especifica ningún nombre lógico de archivo de registro. De no hacerlo SQL Server utiliza el tamaño del archivo principal de la base de datos model. La palabra clave va seguida de una lista delimitada por comas de elementos que definen los archivos de datos del grupo de archivos principal. No se puede especificar un directorio en un sistema comprimido de archivos. el cual contiene el inicio lógico de la base de datos y de las tablas del sistema. El primer archivo especificado pasa a ser el archivo principal. PRIMARY Especifica que la lista de archivos está asociada al grupo principal.Manual de Visual Basic. Si no se especifica PRIMARY. FILENAME Especifica el nombre de archivo del sistema (archivo físico). No se requiere este parámetro cuando se especifica FOR ATTACH. deben ser únicos en un servidor y pueden tener hasta 128 caracteres. a menos que no se especifique ningún nombre lógico para el registro. La palabra clave va seguida de una lista delimitada por comas la cual define las características de los archivos de registro. se crea automáticamente un único archivo de registro con un nombre generado por el sistema y un tamaño que es el 25% de la suma de los tamaños de todos los archivos de datos de la base de datos.es elvis . Una base de datos sólo puede tener un archivo principal. También contiene todos los objetos no asignados a los grupos de archivos de usuario. Este grupo contiene todas las tablas del sistema de base de datos. SIZE Especifica el tamaño para el archivo.

el valor predeterminado es MB.767 bases de datos. • En un servidor se puede especificar un máximo de 32. UNLIMITED Especifica que el archivo aumenta de tamaño hasta que el disco esté lleno. este valor no puede exceder el valor MAXSIZE. no incluya decimales. El tamaño especificado se redondea al múltiplo de 64 KB más cercano. Si no se especifica. MAXSIZE Especifica el tamaño máximo de crecimiento del archivo. Se pueden utilizar los sufijos KB y MB. el valor predeterminado es 1 MB. elvis_urrutia@hotmail. el tamaño de incremento de crecimiento es el porcentaje especificado del tamaño del archivo en el momento en que tiene lugar el incremento. el valor predeterminado es 10% y el valor mínimo es 64 KB. De no emplear FILEGROWTH. • Cualquier objeto definido por el usuario en model se copiará a todas las bases de datos recién creadas. • SQL Server rellena el resto de la base de datos con páginas vacías.es elvis . KB o %. FILEGROWTH Especifica el incremento de crecimiento del archivo. • Cuando específica una instrucción CREATE DATABASE nombreBaseDatos sin parámetros adicionales.net 2003/2005 El valor mínimo a asignar es de 512 KB. Especifique un número entero.Manual de Visual Basic. el archivo aumenta hasta que el disco esté lleno. • Cada base de datos nueva hereda los valores opcionales de la base de datos model (a menos que se especifique FOR ATTACH). Un valor 0 indica que no hay crecimiento. Emplee un número entero. este propietario se puede cambiar mediante sp_changedbowner. Cuando se especifica %. El valor se puede especificar en MB. SQL Server implementa CREATE DATABASE en dos pasos: • SQL Server utiliza una copia de model para inicializar la base de datos y sus metadatos. Si no se especifica tamaño. Observaciones Emplee CREATE DATABASE para crear una base de datos y los archivos que almacenan ésta. El tamaño especificado para el archivo principal debe tener al menos el tamaño del archivo principal de la base de datos model. excepto las páginas que tengan datos internos que registren cómo se emplea el espacio en la base de datos. la base de datos se crea con el mismo tamaño que model. el valor predeterminado es MB. El propietario es el usuario que crea la base de datos. • Cada base de datos tiene un propietario con capacidad para realizar actividades especiales.

FILEGROWTH = IncrementoCrecimiento ] ) ARGUMENTOS: baseDeDatos Es el nombre de la base de datos cambiada. elvis_urrutia@hotmail. Agrega o quita archivos y grupos de archivos en una base de datos.Manual de Visual Basic. NombreGrupoArchivos Es el nombre del grupo de archivos al que se va a agregar el archivo especificado. REMOVE FILE Quita la descripción del archivo de las tablas del sistema de base de datos y elimina el archivo físico..es elvis .net 2003/2005 ALTERACIÓN DE UNA BASE DE DATOS ALTER DATABASE (Transact-SQL) Modifica una base de datos o los archivos y grupos de archivos asociados a la base de datos. MAXSIZE = { TamañoArchivo | UNLIMITED } ] [ .. NombreGrupoArchivos Es el nombre del grupo de archivos que se va a agregar o quitar.n ] | REMOVE FILE NombreArchivoLogico | ADD FILEGROUP NombreGrupoArchivos | REMOVE FILEGROUP NombreGrupoArchivos | MODIFY FILE < filespec > | MODIFY FILEGROUP NombreGrupoArchivos PropiedadGrupoArchivos } < filespec > = ( NAME = ‘NombreArchivoLogico’ [ . ADD LOG FILE Especifica que se agrega un archivo de registro a la base de datos indicada. cambia la intercalación de base de datos y establece las opciones de base de datos. Sintaxis ALTER DATABASE baseDeDatos { ADD FILE < filespec > [ ..n ] [ TO FILEGROUP NombreGrupoArchivos ] | ADD LOG FILE < filespec > [ .. cambia los atributos de una base de datos o de sus archivos y grupos de archivos. SIZE = Tamaño ] [ . FILENAME = 'NombreArchivoSO' ] [ . ADD FILE Especifica que se está agregando un archivo... El archivo no puede eliminarse a menos que esté vacío. ADD FILEGROUP Especifica que se va a agregar un grupo de archivos. TO FILEGROUP Especifica el grupo de archivos al que se agrega el archivo especificado.

algunos de estos son: sp_helpdb Presenta información acerca de una base de datos especificada o de todas las bases de datos. sp_helpfile Muestra un informe de los archivos de la base de datos. incluidas las opciones FILENAME. sp_spaceused Muestra un informe acerca del espacio utilizado en una base de datos. el permiso CONTROL en la base de datos. ELIMINAR UNA BASE DE DATOS DROP DATABASE (Transact-SQL) Quita una o más bases de datos de Microsoft® SQL Server™.net 2003/2005 REMOVE FILEGROUP Quita el grupo de archivos de la base de datos y elimina todos los archivos del grupo de archivos..n ] Argumentos database_name Especifica el nombre de la base de datos que se va a quitar.Manual de Visual Basic. Sólo se puede cambiar una de estas propiedades a la vez. Ejecute sp_helpdb desde la base de datos master para ver una lista de bases de datos. sp_helpfilegroup Muestra un informe de los grupos de archivos de una base de datos. Permisos Para ejecutar DROP DATABASE. Al quitar una base de datos se eliminan la base de datos y los archivos de disco que utiliza. Observaciones El contexto de base de datos de la conexión debe estar en la base de datos master para que se pueda utilizar DROP DATABASE. elvis_urrutia@hotmail.. como mínimo. el usuario debe tener. SQL-SERVER contiene procedimientos almacenados que nos permiten interactuar mostrar informaciones diversas de las bases de datos que se encuentran instaladas. Sintaxis: DROP DATABASE database_name [ . SIZE. El grupo de archivos no puede eliminarse a menos que esté vacío. DROP DATABASE quita las bases de datos dañadas marcadas como sospechosas y quita la base de datos especificada. MODIFY FILE Especifica el archivo determinado que se debe modificar. FILEGROWTH y MAXSIZE..es elvis .

los datos se organizan con arreglo a un formato de filas y columnas. Esta información existirá hasta que se elimine explícitamente. • Tablas Temporales Globales. su visibilidad es para cualquier usuario. En las tablas. Consideraciones al crear tablas • • • • Billones de tablas por base de datos 1024 columnas por tabla 8060 es el tamaño máximo de registro (sin considerar datos image. Hay dos tipos de tablas temporales.Manual de Visual Basic. su visibilidad y su ámbito de vida. y son eliminadas automáticamente cuando ya no son usadas. Temporales Estas son tablas similares a las permanentes que se graban en tempdb. text y ntext) Al momento de definir una columna se puede especificar si la columna soporta o no valores NULL.es elvis . elvis_urrutia@hotmail. que define el tipo de datos que cada columna puede almacenar.net 2003/2005 Crear. los datos de cada ocurrencia de la columna son similares. Tablas del Usuario Permanentes Son las tablas donde se almacena la información que los usuarios utilizan para sus operaciones. similar al de una hoja de cálculo. y son eliminadas luego que todos los usuarios que la referencian se desconectan del SQL Server. • Tablas Temporales Locales. su visibilidad es solamente para la conexión actual del usuario y son eliminadas cuando el usuario se desconecta. Eliminar una TABLA Filas o Registros Columnas o Campos Las tablas son objetos de la BD que contienen todos sus datos. Cada fila representa a un registro único. locales y globales. Como cada columna representa un atributo de un objeto. El primer carácter del nombre de #. y cada columna representa a un campo dentro de un registro. Una de las propiedades de las columnas es su tipo de datos. Su nombre comienza con ##. difieren una de la otra en sus nombres. Alterar.

money. Los datos pueden variar en el número de dígitos hexadecimales (hasta 8 KB). Fechas en el rango 01 Ene 1900 hasta 06 Jun 2079 (Se requiere requires 4 bytes por valor).Manual de Visual Basic. expresión y parámetro dispone de un tipo de datos relacionado. todos los cuales podrían estar a la derecha del punto decimal. Por ejemplo las combinaciones "John928" varchar y "(0*&(%B99nh jkJ". La data puede tener una longitud variable y exceder los 8Kb. que son en realidad alias de los tipos de datos suministrados por el sistema. que es un atributo que especifica el tipo de datos (integer. text Consisten en combinaciones válidas de Datetime estos datos. Fechas en el rango 01 Ene 1753 hasta el 31 Dic 9999 (Se requiere 8 bytes Fecha y tes por valor). cada columna. etc) que el objeto puede contener. Tipo de Dato binary Descripción La data debe tener una longitud fija (hasta 8 KB). La data puede variar en el número de caracteres (Hasta 8 KB. Los datos deben tener una longitud fija (Hasta 8 KB). Los datos pueden tener hasta 38 dígitos. No puede separar en tipos distintos el almacenamiento de sólo smalldatetime fechas o sólo horas. Consisten en información que almacena información significativa después del punto decimal decimal. También se pueden utilizar tipos de datos definidos por el usuario.es elvis . Categoría Descripción Almacenan cadenas de bits. character. Por ejemplo el decimal 245 es F5 en hexadecimal. La data consiste de números hexadecimales.net 2003/2005 Tipos de Datos de SQL Server 2005 En Microsoft® SQL Server™. Para SQL Server. el tipo de dato numeric es equivalente al tipo de datos decimal. Binario varbinary image Consisten de una combinación de letras. variable local.) Los datos pueden ser caracteres ASCII que excedan los 8 KB. SQL Server suministra un conjunto de tipos de datos del sistema que define todos los tipos de datos que pueden utilizarse con SQL Server. char símbolos y números. Caracter Fecha y Hora Decimal numeric elvis_urrutia@hotmail. Este tipo de dato guarda un valor exacto del número y no una aproximación.

477.483.147. Almacena varios tipos de datos.es elvis . image y sql_variant.203.647. cursor SQL_variant table elvis_urrutia@hotmail. Datos en el rango de 2. Datos entre 0 y 255.337.337.5807 (Se requieren 8 bytes por valor) Datos monetarios entre – 214.648 hasta 2. Datos en el rango de 3. bigint Enteros int smallint tinyint Cantidades monetarias positivas o negativas. Emplear este tipo de dato para representar TRUE o FALSE ó YES o NO.147.5808 y +922. 0 y 25. Almacena un resultado de una consulta para su posterior float real Consiste en información numérica positiva o negativa como por ejemplo –5. timestamp. Datos en el rango de 2^63 (– 9223372036854775808) hasta 2^63–1 (9223372036854775807).79E + Punto 308 hasta 1.748.203.3648 y 214. a excepción de text. Se requieren de 8 bytes para almacenar estos valores. se requiere de 1 byte.3647 (Se requieren de 4 bytes por valor) Datos que consisten de 1 o 0. Se requieren de 4 bytes para almacenar estos valores.Manual de Visual Basic.768 hasta 32. Este tipo de dato es empleado por variables o procedimientos almacenados que emplean parámetros OUTPUT referenciados a un cursor. ntext. Se requieren 2 bytes por cada valor de este tipo.477.net 2003/2005 Números aproximados (Punto flotante). money Monetario smallmoney Especiales Consisten en información que no recae en ninguna de las categorías bit anteriormente mencionadas.40E + 38.40E + 38 hasta 3.483.748.767. Punto Flotante Datos en el rango de 1. Datos monetarios entre – 922.685.685.79E + 308. Datos en el rango de –32.

De usuario que es propietario de la nueva tabla. Sintaxis: CREATE TABLE [ nombreBaseDatos[Propietario] |propietario ]nombreTabla ( {<definicionColumna> |nombreColumna AS expresionColumnaCalculada } [. es de forma predeterminada. Datos con longitud fija. el Id.es elvis . debe especificar el nombre de una BD existente.…n] <definicionColumna>::={nombreColumna tipoDatos} [[DEFAULT expresión constante] |[IDENTITY [(inicialización. hasta 4000 caracteres Unicode. incremento)] ] ] ) Argumentos: nombreBaseDatos: El nombre de la BD donde se crea la tabla. la tabla se creara en la BD Actual. Propietario: Nombre del ID. elvis_urrutia@hotmail. Sino se especifica la BD. De usuario asociado con el inicio de sesión.net 2003/2005 procesamiento. hasta 4000 caracteres Unicode. Se puede emplear para definir variables locales de tipo table o para retornar los valores devueltos por una función del usuario Al emplear este tipo de datos se puede almacenar nchar sobre una columna valores que incluyan este conjunto de caracteres. Datos que exceden los 4000 caracteres Unicode. nvarchar Hay que recordar que los datos Unicode emplean dos bytes por cada ntext carácter a representar. Datos que pueden variar. Unicode Creación de Tabla CREATE TABLE (T-SQL) El comando CREATE TABLE permite crear una nueva tabla.Manual de Visual Basic.

o al deshabilitar o habilitar restricciones y desencadenadores. Los nombres de tablas se deben ajustar a las reglas para los identificadores. Cuando se agrega una nueva fila a la tabla.net 2003/2005 NombreTabla: Es el nombre de la nueva tabla. Las columnas de identidad se utilizan normalmente junto con restricciones PRIMARY KEY para que actúen como identificador exclusivo de fila para la tabla. NombreColumna: Es el nombre de una columna de la tabla.nombreTabla debe ser única en la base de datos.es elvis . La combinación de usuario. excepto para los nombres de tablas temporales locales (nombres precedidos con un signo numérico simple (#)) que no pueden exceder de 116 caracteres. nombreTabla puede contener un máximo de 128 caracteres. Microsoft® SQL Server™ proporciona un valor incremental y único a la columna. Se permiten los tipos de datos del sistema o definidos por el usuario. Los nombres de columna deben cumplir las reglas de los identificadores y deben ser únicos en la tabla ExpresionColumnaCalculada: Define el valor de una columna calculada. bigint.Manual de Visual Basic. Inicialización: Es el valor que se utiliza para la primera fila cargada en la tabla. La propiedad IDENTITY puede asignarse a las columnas smallint. TipoDato: Especifica el tipo de datos de la columna. DEFAULT: Especifica el valor suministrado para la columna cuando no se ha especificado explícitamente un valor durante la inserción.0).0) o numeric(p. Sólo se puede crear una columna de identidad por tabla. elvis_urrutia@hotmail. Modificar una Tabla ALTER TABLE (T-SQL): El comando ALTER TABLE permite modificar una definición de tabla al alterar. es una columna virtual no almacenada físicamente en la tabla. Incremento: Se trata de un valor incremental que se agrega al valor de identidad de la anterior fila cargada. agregar o quitar columnas y restricciones. IDENTITY: Indica que la nueva columna es una columna identidad. int. decimal(p.

.n ] | [ WITH CHECK | WITH NOCHECK ] ADD { < restriccionTabla> } [ .n ] < definicionColumna > ::= { nombreColumna TipoDatos } [ [ DEFAULT exprecionConstante ] | [ IDENTITY [ ( inicializacion...net 2003/2005 Sintaxis: ALTER TABLE tabla { [ ALTER COLUMN nombreColumna { nuevoTipoDatos [ ( precision [ .. desencadenadores. Las vistas o procedimientos almacenados que hagan referencia a la tabla quitada se deben quitar explícitamente con la instrucción DROP VIEW o DROP PROCEDURE. incremento )] ] < restriccionColumna > ::= [ CONSTRAINT nombreRestriccion ] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE } Eliminar la Tabla DROP TABLE (T-SQL) Quita una definición de tabla y todos los datos.._Usuario elvis_urrutia@hotmail.Manual de Visual Basic. Ejm: USE BdEjemplo GO DROP TABLE audit.. Sintaxis DROP TABLE nombreTabla Argumentos NombreTabla: Es el nombre de la tabla que se va a quitar. restricciones y especificaciones de permisos de la tabla..n ] DROP { [ CONSTRAINT] nombreRestriccion | COLUMN nombrecolumna }[ ... índices. escala] ) ] [ NULL | NOT NULL ] } ] | ADD { [ < definicionColumna > ] | nombreColumna AS exprecionCalculada } [ .es elvis .

Manual de Visual Basic.net 2003/2005 Crear una Base de Datos Con el nombre “Muestra” Para ello debemos realizar una nueva consulta hacemos clic en New Query Crear una tabla Clientes Con los siguientes campos (Codigo. Nombres.es elvis . Direccion) Luego presionar f5 y se mostraran los campos “go” es un separador de bloque de código La novedad es la numeración que nos da sql Server 2005 elvis_urrutia@hotmail. Apellidos.

Manual de Visual Basic. nombres.es elvis . direccion Form clientes Escribir todos los campos y el resultado es el mismo elvis_urrutia@hotmail. apellidos.net 2003/2005 Para activar la numeración Activar la opción Line Numbers Insertando Registros a nuestra Tabla Clientes Cuando se inserten numero solamente se escribirán pero cuando sea texto Irán entre apostrofe Select * Form clientes (solo para demostración lo correcto es ) Select codigo.

Manual de Visual Basic.es elvis .net 2003/2005 Recuerden que este manual no es para sql luego veremos como crear procedimientos almacenados y ejecutarlos desde vb net no crean que con este manual van a aprender sql completo solo implementación con visual Agregar4 registros mas para tener un total de 5 Registros Mostrando la tabla clientes en visual Diseñar la siguiente interfaz elvis_urrutia@hotmail.

Data.DataGridView1.net 2003/2005 Importamos Nombre de nuestro servidor Imports System.es elvis .integrated security=true") Dim ds As New DataSet En el evento load del formulario Dim da As New SqlDataAdapter("select codigo. "clie") Me.direccion from clientes".Fill(ds.Tables("clie") Si se dan cuenta viene hacer lo mismo que Access pero solo estamos cambiando sqldatadapter (sql) Agregando registros Diseñar la Siguiente interfaz elvis_urrutia@hotmail.Apellidos.DataSource = ds.Manual de Visual Basic. cn) da.initial catalog=muestra.SqlClient Public cn As New SqlConnection("Server=CASA-830E44C75F\SQLEXPRESS Referenciamos el nombre de nuestra base de datos .nombres.

Tables("mostrar") ComboBox1.DisplayMember = ds.OK) cn.Fill(ds.Text & "' .Clear() da. "guardados") DataGridView1.DataSource = ds.Manual de Visual Basic.net 2003/2005 Doble clic en el Botón Agregar Try Dim cmd As New SqlCommand("insert into clientes (codigo. entornes se va a mostrar los apellidos y el campo a guardar es la dirección elvis_urrutia@hotmail.Open() cmd.direccion) values('" & txtcodigo. '" & txtapellidos.Close() ds. '" & txtdireccion.es elvis .Columns(1).ExecuteNonQuery() MessageBox. cn) cn. "mostrar") ComboBox1.DataSource = ds.Fill(ds.Text & "')".Show(ex.ValueMember = "direccion" Nuestro dataset es “Mostar” vamos a mostrar la columna (1) si se empieza a contar desde 0 código. nombres.Tables("mostrar"). apellidos. '" & txtnombres.apellidos.Text & "'.Text & "' . dirección.Message) End Try El proceso para eliminar es el mismo que en Access solo cambien lo que dice oldb por sql Veamos como enlazar el combobox Pripoedades ValuMember = es el valor que se guarda DisplayMember = se va a escribir el campo que se quiere mostrar en el combo Datasource = nos permite enlazar a los datos a mostrar da.Tables("guardados") Catch ex As Exception MessageBox.ColumnName ComboBox1.nombres. MessageBoxButtons. "Registro Completado".Show("Contacto Agregado".

SelectedValue.es elvis .Text = ComboBox1.Tables("guardados") Enlazamos al combo al daset que tiene los registros guardados por el boton Guardando Viendo el ValuMember Agregamos un textbox solo para demostración En el código estábamos guardando la dirección entornes cuando seleccionemos un apellido la dirección se debe mostrar en el textbox1 Codificar en el combobox evento SelectedIndexChanged TextBox1.net 2003/2005 En el Botón guardar ComboBox1.DataSource = ds.Manual de Visual Basic.ToString elvis_urrutia@hotmail.

Close() End If da.DisplayMember = "Apellidos" ComboBox1. "buscados") Me.Manual de Visual Basic.Fill(ds.ValueMember = "Apellidos" Codificar en el combobox evento SelectedIndexChanged El código anterior pónganlo como comentario Try da.es elvis .Tables.net 2003/2005 En el evento Load del formulario.SelectedValue & "'" If ds.Tables("buscados") Catch ex As Exception End Try Ahora enlazaremos un ListBox Diseñar la siguiente interfaz elvis_urrutia@hotmail.Tables("buscados").SelectCommand. escriban lo siguiente Pongan como comentario el código anterior del combobox y escriban este ComboBox1.Tables("mostrar") ComboBox1.DataSource = ds.DataGridView1.Clear() cn.DataSource = ds.Contains("buscados") Then ds.CommandText = "select * from clientes where Apellidos= '" & ComboBox1.

Manual de Visual Basic.DisplayMember = "Nombres" ListBox1.ValueMember = "Apellidos" ListBox1.integrated security=true") Dim ds As New DataSet En el evento load del formulario Dim da As New SqlDataAdapter("select Nombres from clientes". "Nombres") ListBox1.es elvis .initial catalog=muestra.net 2003/2005 Pripoedades ValuMember = es el valor que se guarda DisplayMember = se va a escribir el campo que se quiere mostrar en el combo Datasource = nos permite enlazar a los datos a mostrar Imports System.Tables("Nombres") elvis_urrutia@hotmail.Data. cn) da.DataSource = ds.Fill(ds.SqlClient Public cn As New SqlConnection("Server=CASA-830E44C75F\SQLEXPRESS .

SQL Server proporciona procedimientos almacenados para la administración de SQL Server y para presentar información sobre las bases de datos y los usuarios. En SQL Server existen 5 tipos de procedimientos almacenados: • Procedimientos del sistema. Los procedimientos almacenados que proporciona SQL Server se denominan procedimientos almacenados de sistema. Procedimientos extendidos. Procedimientos locales. incluidas las llamadas a otros procedimientos. son procedimientos almacenados en servidores distribuidos. • • • • elvis_urrutia@hotmail. En el nombre usan como prefijo sp_. Estos procedimientos usan el prefijo xp_ y se encuentran en la base de datos master. estos procedimientos almacenados brindan información acerca de los datos y características del servidor. son los procedimientos almacenados en una base de datos. Procedimientos remotos.es elvis . son aquellos que nos permiten aprovechar las funcionalidades de otras librerías externas a SQL Server. son procedimientos locales y sus nombres empiezan con los prefijos # o ##. Puede utilizar la instrucción EXECUTE de Transact-SQL para ejecutar un procedimiento almacenado.Manual de Visual Basic. Procedimientos temporales. son los que se encuentran almacenados en la base de datos master y algunas en las bases de datos de usuario. Devolver un valor de estado a un lote o a un procedimiento que realiza una llamada para indicar si la operación se ha realizado correctamente o ha habido un error (y el motivo del mismo). Los procedimientos almacenados de SQL Server son similares a los procedimientos de otros lenguajes de programación en el sentido de que pueden: • • • Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al lote o al procedimiento que realiza la llamada. dependiendo si se desea que sea un procedimiento global a todas las conexiones o local a la conexión que lo define.net 2003/2005 Procedimientos almacenados Colección precompilada de instrucciones Transact-SQL que se almacenan bajo un nombre y se procesan como unidad. Contener instrucciones de programación que realicen operaciones en la base de datos.

Un especialista en programación de bases de datos puede crear procedimientos almacenados. incluso si no cuentan con permiso para ejecutar directamente las instrucciones del procedimiento. que es una colección guardada de instrucciones Transact-SQL que puede tomar y devolver los parámetros proporcionados por el usuario. Los procedimientos son analizados y optimizados en el momento de su creación. • Pueden reducir el tráfico de red. Es posible conceder permisos a los usuarios para ejecutar un procedimiento almacenado.net 2003/2005 Utilizar procedimientos almacenados en SQL Server presenta las siguientes ventajas: • Permiten una programación modular. los procedimientos almacenados pueden ser más rápidos que los lotes de código TransactSQL.. • Pueden utilizarse como mecanismo de seguridad. Crear un Procedimiento Almacenado CREATE PROCEDURE Crea un procedimiento almacenado.n ] Argumentos procedure_name elvis_urrutia@hotmail..es elvis . Sintaxis CREATE PROC [ EDURE ] procedure_name [ { @parameter data_type } [ OUTPUT ] ] AS sql_statement [ . En los casos en que la operación requiere una gran cantidad de código Transact-SQL o se realiza repetidas veces.Manual de Visual Basic. Una operación que necesite centenares de líneas de código TransactSQL puede realizarse mediante una sola instrucción que ejecute el código en un procedimiento. y es posible utilizar una versión del procedimiento que se encuentra en la memoria después de haberlo ejecutado una primera vez. en vez de enviar cientos de líneas de código por la red. • Permiten una ejecución más rápida. que luego será posible modificar independientemente del código fuente del programa. almacenarlo en la base de datos y llamarlo desde el programa tantas veces como desee. Puede crear el procedimiento una vez.

100 parámetros. elvis_urrutia@hotmail. Los nombres de procedimiento deben seguir las reglas de los identificadores y deben ser únicos en la base de datos y para su propietario.Manual de Visual Basic. data_type Es el tipo de datos del parámetro. ntext e image. AS Son las acciones que va a llevar a cabo el procedimiento. El valor de esta opción puede devolverse a EXEC[UTE]. sql_statement Es cualquier número y tipo de instrucciones Transact-SQL que se incluirán en el procedimiento. El usuario debe proporcionar el valor de cada parámetro declarado cuando se ejecuta el procedimiento. En una instrucción CREATE PROCEDURE se pueden declarar uno o más parámetros. @parameter Es un parámetro del procedimiento. Un procedimiento almacenado puede tener un máximo de 2. Especifique un nombre de parámetro con un signo (@) como el primer carácter. ntext e image se pueden utilizar como parámetros OUTPUT.es elvis . incluidos text.net 2003/2005 Es el nombre del nuevo procedimiento almacenado. Los parámetros text. se pueden utilizar como parámetros de un procedimiento almacenado. Todos los tipos de datos. Utilice los parámetros OUTPUT para devolver información al procedimiento que llama. Un parámetro de salida que utilice la palabra clave OUTPUT puede ser un marcador de posición de cursor. a menos que se haya definido un valor predeterminado para el parámetro. OUTPUT Indica que se trata de un parámetro de retorno.

@parametro2 tipo_dato[=Valor]OUTPUT .Procedimiento que recibe parámetros: CREATE PROCEDURE nombre_proc @parametro1 tipo_dato[=Valor]..net 2003/2005 ENTRE ESTOS PROCEDIMIENTOS ALMACENADOS CREADOS POR EL USUARIO TENEMOS: 1.… AS Sentencia_sql 3..Procedimiento que no recibe ni devuelve Parámetro: CREATE PROCEDURE nombre_proc AS Sentencia_sql 2. sin cambiar los permisos y sin que afecte a ningún procedimiento almacenado ni desencadenador dependientes.Procedimiento que recibe y entrega parámetros: CREATE PROCEDURE nombre_proc @parametro1 tipo_dato[=Valor].es elvis .… AS Sentencia_sql Ejemplo: Use Almacen GO CREATE PROCEDURE usp_ConsultaClientes AS SELECT * FROM Cliente Modificar un Procedimiento Almacenado ALTER PROCEDURE Modifica un procedimiento creado anteriormente por la ejecución de la instrucción CREATE PROCEDURE.Manual de Visual Basic.. elvis_urrutia@hotmail. @parametro2 tipo_dato[=Valor].

title_id INNER JOIN publishers p ON t. FROM authors a INNER JOIN titleauthor ta ON a.pub_id = p.title_id = ta. au_fname.Manual de Visual Basic. Ejemplo Este ejemplo quita el procedimiento almacenado byroyalty (de la base de datos actual). DROP PROCEDURE byroyalty Ejecutar un procedimiento almacenado que muestre todos los clientes (sin parámetros) Nombre del store elvis_urrutia@hotmail.net 2003/2005 Ejemplo ALTER PROCEDURE au_info_all AS SELECT au_lname.pub_id GO Eliminar un Procedimiento Almacenado DROP PROCEDURE Quita uno o más procedimientos almacenados o grupos de procedimientos de la base de datos actual.au_id = ta.au_id INNER JOIN titles t ON t.es elvis .

Data.es elvis .DataSource = ds.Tables("clietodos") Catch ex As Exception MessageBox.SelectCommand.integrated security=true") Doble clic en el Botón Mostrar Try Nombre del store Dim da As New SqlDataAdapter("usp_Mostrar_clientes".CommandType = CommandType.net 2003/2005 Diseñar la siguiente interfaz Imports System.SqlClient Public cn As New SqlConnection("Server=CASA-830E44C75F\SQLEXPRESS .Message) End Try Indicamos el tipo y el comando que se va a ejecutar elvis_urrutia@hotmail.StoredProcedure Dim ds As New DataSet da. cn) da.Manual de Visual Basic. "clietodos") DataGridView1.Show(ex.initial catalog=muestra.Fill(ds.

’pareja’. los parámetros se inician con un @ Le pasamos los campos pero evaluamos los parámetros después de valúes Ejecutamos el store procedure Para la ejecución del store hay dos formas Exec usp_guasrda_clientes 9.es elvis .@nombres='Carlos Joel'.@direccion='san martin de porres' De esta forma no importa el orden por que estamos especificando parámetro y valor Diseñaer la siguiente internaz elvis_urrutia@hotmail.@apellidos='Carvejo quispe'.’luis’.net 2003/2005 Crearemos procedimientos Almacenados con Parámetros Crearemos el store procedure Son los parámetros que van a tener su mismo valor que los campos de la tabla.’pareja’.’lurin’ O siendo mas especifico De esta forma importa el orden de inserción de registros exec usp_guarda_clientes @codigo =9.Manual de Visual Basic.’luis’.’lurin’ O simplemente el nombre y sus registros s guardar usp_guasrda_clientes 9.

valué va hacer = destino de donde vamos a guardar en este caso nuestras cajitas de texo.ExecuteNonQuery() MessageBox. MessageBoxButtons.integrated security=true") Doble clic en el Botón guardar Try Dim cmd As New SqlCommand("usp_guarda_clientes".Add(New SqlParameter("@apellidos".Fill(ds.Show(ex.Tables("Guardados") Catch ex As Exception MessageBox. estamos utilizando el otro store “usp_Mostrar_clientes para llenar el datagrid” elvis_urrutia@hotmail.parameretes estamos indicando que se van a ejecutar parámetros .DataSource = ds.Parameters . SqlDbType.Value = txtcodigo.net 2003/2005 Imports System.Text . 2)).Char.StoredProcedure With cmd.Data.Message.Close() End Try Nuestra command que es representado por “cmd” esta ejecutando nuestro store Luego un with cm.Show("Clientes Guardado Ok".Add(New SqlParameter("@codigo".Text .Value = txtnombre.VarChar.es elvis . cn) cmd.Text .Manual de Visual Basic. SqlDbType.OK) Dim da As New SqlDataAdapter("usp_Mostrar_clientes". 35)).SqlClient Public cn As New SqlConnection("Server=CASA-830E44C75F\SQLEXPRESS .Open() cmd. "Guardar". 25)). 25)).Source) Finally cn. SqlDbType.Value = txtapellido.Add(New SqlParameter("@direccion". ex.VarChar.initial catalog=muestra.Text End With cn.Value = txtdireccion. SqlDbType. cn) Dim ds As New DataSet da. "Guardados") DataGridView1.Add (new sqlparameter “se crea una instancia” luego se escriben los parámetros de tu store con su tipo y se evalúa con .VarChar.CommandType = CommandType.Add(New SqlParameter("nombres".

net 2003/2005 Crearemos procedimientos Almacenados (Eliminar) Crearemos el store procedure Eliminando elvis_urrutia@hotmail.Manual de Visual Basic.es elvis .

OK) Dim da As New SqlDataAdapter("usp_Mostrar_clientes".es elvis .Close() End Try Mostrando conexiones con clases Agregaremos una clase y escribir el nombre “operaciones” Y un formulario elvis_urrutia@hotmail.Fill(ds.StoredProcedure With cmd.Manual de Visual Basic.Parameters .Tables("eliminados") Catch ex As Exception MessageBox.CommandType = CommandType. cn) da. "Borrar".Open() cmd. "eliminados") DataGridView1.net 2003/2005 Doble clic en el Botón Eliminar Try Dim cmd As New SqlCommand("usp_elimina_cliente". 2)). MessageBoxButtons.Add(New SqlParameter("@codigo".Char.Source) Finally cn.Message.Show(ex. SqlDbType. cn) cmd.DataSource = ds.Show("Cliente Borrado".ExecuteNonQuery() MessageBox. ex.Value = txtcodigo.Text End With cn.

.Data.SqlClient Private cn As New SqlConnection("Server =.SqlClient Public Class operaciones Private cn As New SqlConnection("Server =. integrated security = true") Deberá quedar de la Siguiente manera ´ Imports System. integrated security = true") Se acuerdan del código anterior que codificábamos Dentro de los botones pues ahora vamos a codificar Dentro de la clase operaciones así desde el Botón solo llamaremos a nuestra clase Para esto crearemos una funcion Utilizaremos nuestro store usp_Mostrar_clientes Diseñar la siguiente interfaz elvis_urrutia@hotmail. initial catalog = muestra. initial catalog = muestra.Data.Manual de Visual Basic.es elvis .net 2003/2005 Nos mostrara la siguiente ventana y en el explorador de formularios se agregara nuestra clase operaciones ImportAmos en names space Y nuestra cadena de conexion Imports System..

Source) End Try Estamos enlazando con nuestra variable obj.Message.getMostrarClientes Catch ex As Exception MessageBox.Manual de Visual Basic. cn) da.getMosrarClientes Y el nombre de nuestra funcion Por que Get<Nombre funcion> Es un estándar de nombre de funciones para poder encontrarlos mas rápido en la compilación y al ejecutarse elvis_urrutia@hotmail.CommandType = CommandType.net 2003/2005 Codificaremos en nuestra clase operaciones Crearemos nuestra funcion Es de tipo data table por que los que no devuelve es una tabla y retornamos una tabla (dataset) Nombre de funcion Public Function getMostrarClientes() As DataTable Try Dim da As New SqlDataAdapter("usp_Mostrar_clientes".Fill(ds) Return ds.StoredProcedure Dim ds As New DataSet da.DataSource = obj. ex.es elvis .SelectCommand.Show(ex.Tables(0) Catch ex As Exception Como es una funcion nos pide retornar algo (un Throw ex objeto de tipo datatable (dataset) End Try End Function Estamos dentro de una clase no podemos mandar mensajes “throw ex” manda el error a quien lo genere Codificando en el formulario Crear una instancia a nivel de formulario tendremos que instanciar nuestra clase Dim obj As New operaciones Declaramos una variable “obj” y la instanciamos a nuestra clase “operaciones” Doble clic en el Botón “Mostrar Todos los Clientes” Try DataGridView1.

net 2003/2005 Ejecutando nuestra aplicación Guardando Diseñar la siguiente interfaz elvis_urrutia@hotmail.Manual de Visual Basic.es elvis .

SqlDbType.TextBox1.State = ConnectionState.Parameters("@codigo"). SqlDbType.Parameters.Value = apeclie cmd.Text.Manual de Visual Basic.Value = codclie cmd.Text.TextBox1. dirclie) Solo están tomando el valor de nuestros parámetros Public Function getclientesguardados(ByVal codclie As String.Add(New SqlParameter("@codigo". TextBox2. SqlDbType.Text) Aca estamos llamando a nuestra funcion getMostrarClientes para que nos muestre los clientes que acabamos de guardar Me. nomclie.Open() cmd.Open Then cn.Close() Return codigo Catch ex As Exception Throw ex Finally If cn. 30)).getMostrarClientes MessageBox.Show("Ok") Catch ex As Exception MessageBox.DataSource = obj.Parameters.Value = nomclie cmd.Message) End Try elvis_urrutia@hotmail.Parameters.Show(ex.Text = obj.Parameters.NChar.NChar.ExecuteNonQuery() Dim codigo As String codigo = cmd.NChar.CommandType = CommandType. cn) cmd.Close() End If End Try End Function En el Botón codificaremos Try Me. apeclie.Text.es elvis .net 2003/2005 Creamos otro funcion Lo único nuevo es las variables declaradas dentro de la funcion (codclie.DataGridView1. TextBox3.Add(New SqlParameter("@nombres".getclientesguardados(Me.Add(New SqlParameter("@direccion". 30)).Value cn. 8)).Value = dirclie cn.NChar.Add(New SqlParameter("@apellidos".StoredProcedure cmd. 30)). ByVal apeclie As String. ByVal nomclie As String. SqlDbType. TextBox4. ByVal dirclie As String) As String Try Dim cmd As New SqlCommand("usp_guarda_clientes".

net 2003/2005 EJECUTANDO NUESTRA APLICACIÓN elvis_urrutia@hotmail.es elvis .Manual de Visual Basic.

net 2003/2005 Por ultimo Veremos  Enlazar nuestra Base de Datos con un App Config  Guardar Archivos Xml  Leer Archivos Xml Agregaremos un formulario Agregaremos un AppConfig Poner como comentario la cadena de conexión que tenemos en nuestra clase elvis_urrutia@hotmail.es elvis .Manual de Visual Basic.

net 2003/2005 Debajo de <Configuration> escribir lo siguiente <connectionStrings > Es el alias por el cual vamos a llamar a nuestra base de datos lo de mas es nuestra cadena de conexión.integrated security=true"/> </connectionStrings> elvis_urrutia@hotmail. conforme van escribiendo van apareciendo los metodos <add name ="cnMuesta" connectionString ="server=CASA830E44C75F\SQLEXPRESS.Manual de Visual Basic.es elvis .initial catalog=muestra.

Manual de Visual Basic.es elvis .net 2003/2005 En nuestra clase debemos importar Imports System.ConnectionStrings("cnMuestra").Configuration” y ya no hay errores elvis_urrutia@hotmail.Connect ionString) Si les muestra error o subrayado Agregren la referencia “System.Configuration Ya deben haber dos configuraciones Volvemos a declarar nuestra conexión pero de manera muy diferente Escribimos el Alias de nuestra Base de Datos Private cn As New SqlConnection(ConfigurationManager.

sabes que si drapeas una base de datos se borrara todo aunque están los Backups pero no seria mas fácil solo cambiarle el nombre a la base de datos por el que nos digan El appaconfig es evitable solo cambien el alias y en la clase y generen su solución sin afectar a los datos elvis_urrutia@hotmail.net 2003/2005 Ejecutemos nuestra aplicación La ventaja de usar un AppConfig imaginemos que nuestro sistema ya esta trabajando nuestra base de datos también y que ya tiene registros ventas etc.es elvis . Pero nos piden cambiar el nombre de la base de datos.Manual de Visual Basic.

Manual de Visual Basic.SelectCommand. cn) da.DataSource = ds.Message.StoredProcedure da.es elvis .Fill(ds.Show(ex.Conn ectionString) Dim obj As New operaciones Dim ds As New DataSet("clientes") En el evento load del formulario Try Dim da As New SqlDataAdapter("usp_Mostrar_clientes".CommandType = CommandType. "clie") DataGridView1. ex.Source) End Try elvis_urrutia@hotmail.net 2003/2005 Guardando Archivos XML Agreguen otro formulario Y diseñen lo siguiente A nivel de formulario Public cn As New SqlConnection(ConfigurationManager.ConnectionStrings("cnMuestra").Tables("clie") Catch ex As Exception MessageBox.

Manual de Visual Basic.net 2003/2005 Créense una carpeta en el escritorio con el nombre “Archivo” Doble clic en el Botón Guardar XML ds.WriteXml("C:\Documents and Settings\Daniel\Escritorio\Archivo\clientes.xml") Ruta donde desea generar el archivo

MessageBox.Show("Se Genero el Archivo xml con Exito")

Vallamos a nuestra carpeta que se encuentra en el escritorio

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005

Va a depender de la cantidad de campos y tablas que contenga nuestra base de datos no alcance a capturar toda la imagen pero ustedes o apreciaran mejor

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.net 2003/2005

Leyendo Archivos XML
Diseñar la siguiente interfaz

Doble clic en el Botón leer XML
Dim DS As New DataSet 'aqui el ds ya tiene el archivo DS.ReadXml("C:\Documents and Settings\Daniel\Escritorio\Archivo\clientes.xml") 'aqui mostramos en ds en grilla Me.DataGridView1.DataSource = DS.Tables("clie")

EJECUTAMOS NUESTRA APLICACION

elvis_urrutia@hotmail.es elvis

Manual de Visual Basic.es elvis .net 2003/2005 Iremos filtrando los nombres Crearemos nuestra Siguiente tabla en e insertaremos los siguientes registros Se creara en nuestra base de datos muestra Insertaremos los siguientes registros de tal manera que nuestra tabla quede así Diseñaremos la siguiente interfaz Txt1 Lst1 Datagridview1 elvis_urrutia@hotmail.

lst1.Fill(dt) Me.Items.ToString) '& ". " & _ ' dr("Nombre").Items.Items.Length > 0 Then ' Recorrer cada fila y mostrar los apellidos For Each dr As DataRow In filas Me.Add( _ dr("Nombres").lst1.lst1.Clear() Me.Select("TRANSPORTISTAS LIKE '%" & txt1.initial catalog=muestra.integrated security=true") Dim da As New SqlDataAdapter("select nombres from amigos".DataSource = dt iniciando = False En el txt1 evento txt1_TextChanged Try Dim filas() As DataRow ' nos permiten mostrar los nombres que empiesen con la primera letra escrita filas = dt.Text & "%'") Me.Manual de Visual Basic.Clear() ' Si hay datos. cn) Dim ds As New DataSet Private dt As DataTable Private iniciando As Boolean = True En el evento load del formulario codificaremos dt = New DataTable da.es elvis .Show(ex.ToString) Next End If Catch ex As Exception MessageBox. mostrar los apellidos If filas.DataGridView1.Select("Nombres LIKE '" & txt1.net 2003/2005 Crearemos nuestra cadena de conexión y las variables a utilizar Public cn As New SqlConnection("Server=CASA-830E44C75F\SQLEXPRESS .Text & "%'") 'nos permite mostrar a todos los nombres q contengan la letra escrita 'filas = dt.Message) End Try elvis_urrutia@hotmail.

es elvis .txt1.ToString Ejecutamos nuestra aplicacion Si tu viéramos mas apellidos con P o con C entonces vayan escribiendo el apellido y se Irán filtrando el apellido deseado elvis_urrutia@hotmail.Manual de Visual Basic.SelectedItem.lst1.Text = Me.net 2003/2005 En el listbox (lst1 en el evento lst1_SelectedIndexChanged) Me.