Sie sind auf Seite 1von 32

Visual Studio 2008

* M e n u - Microsoft V i s u a l S t u d i o B B B

Captulo IV Visual Basic 2008


!
3. P o s t e r i o r m e n t e a s i g n a e l men c o n t e x t u a l p a r a e l f o r m u l a r i o , e n s u p r o p i e d a d ContextMenuStrip. 4. A l e j e c u t a r e l f o r m u l a r i o y d a r c l i c d e r e c h o s e mostrar e l men e m e r g e n t e

Clases en Visual Basic


Aprender a trabajar con clases en Visual Basic Comprender el uso de Windows Forms Applications mediante el empleo de casos prcticos. Contenido:

j Objetivo::

j -Crearclases - Mtodos de una clase - Crear una instancia de clase - Probar una Clase - Ejemplos de Windows Forms Applications

Un men contextual siempre debe estar libado a un control.

C R U F O EDITORIAL

Megabyte

Grupo Editorial Megabyte

r ===
s

*SS-

Visual Studio 2008

2L
cdigo y d i g i t a l o s i g u i e n t e : mtodos, y Public Class Forml Sub Forml^Load...

C*gEL o IV-' Visual Basic 2008


tu|

P a r a crear u n a clase d a d o b l e clic e n e l . f o r m u l a r i o para abrir el editor de

( lases e n V i s u a l B a s i c
l a clase q u e d e f i n e u n objeto tiene s u s propias propiedades, esta clase. A l g u n o s m i e m b r o s d e u n a clase s o n p r i v a d o s , es d e c i r p u e d e n ser a l c a n z a d o s i d a m e n t e p o r cdigo d e n t r o d e l a c l a s e . P u e d e s o c u l t a r a m i e m b r o s e n u n a c l a s e declarndolos c o m o p r i v a d o s , o p u e d e s e x p o n e r l o s declarndolos c o m o pblicos. P u e d e s tambin p e r m i t i r e l a c c e s o a u n a p r o p i e d a d s i n e v i t a r q u e e l p r o g r a m a c a m b i e s u v a l o r declarndolo c o m o d e slo l e c t u r a . Ejemplo: Class Prvate Prvate Public CuentaBancaria NumeroCuenta CuentaBalance Sub As As String Decimal e v e n t o s ( a v e c e s l l a m a d o s m i e m b r o s ) q u e s o n p a s a d o s a t o d a s las i n s t a n c i a s d e

SSSBk SBB BSk


-- \ mtMWMBm \ \

Prvate

End Sub
End Class

EES*

fli

E s t a c l a s e est d e l i m i t a d a p o r l a s s e n t e n c i a s C l a s s y E n d C l a s s , y c u a l q u i e r cdigo q u e i n t r o d u z c a s e n t r e e s t a s d o s d e c l a r a c i o n e s e s p a r t e d e l a c l a s e . A u n q u e p o r d e f e c t o e l mdulo c o n t i e n e s o l a m e n t e u n a c l a s e , p u e d e s c r e a r mdulos a d i c i o n a l e s a g r e g a n d o cdigo d e b a j o d e l a s e n t e n c i a E n d C l a s s c o m o s i g u e . Public Class Forml

End Public
i

Class Class MiPrimeraClase

actualizabalance End Class

End

Sub Property BalanceQ As Decimal L a d e s v e n t a j a d e c r e a r c l a s e s d e e s t a m a n e r a , e s q u e estn s o l a m e n t e d i s p o n i b l e s d e n t r o del p r o y e c t o d o n d e las creaste. S i deseas c o m p a r t i r u n a clase c o n o t r o s p r o y e c t o s , tendrs q u e c o l o c a r l a e n u n m d u l o d e c l a s e

ReadOnly Get

Return End End End Get Sub Class

CuentaBalance Mdulo d e Clases U n m d u l o d e c l a s e e s u n a r c h i v o s e p a r a d o d e cdigo q u e c o n t i e n e u n a o m s c l a s e s y p u e d e s e r r e u t i l i z a d o e n o t r o s p r o y e c t o s . L o s mdulos d e l a c l a s e s e p u e d e n c r e a r d e d o s f o r m a s : c o m o m d u l o a g r e g a d o a u n a aplicacin d e W i n d o w s de u n p r o y e c t o , o c o m o u n a biblioteca d e clase independiente del p r o y e c t o . Para crear u n a biblioteca d e clase d e u n proyecto, realiza l o siguiente: 1. E n e l men F i l e , s e l e c c i o n a N e w P r o j e c t .

Crear

clases

I a s c l a s e s s e p u e d e n c r e a r d e t r e s f o r m a s : c o m o p a r t e d e l cdigo e n u n n n . d u l o d e F o r m u l a r i o e n u n a aplicacin d e W i n d o w s d e u n P r o y e c t o , c o m o mdulo s e p a r a d o d e l a c l a s e a d i c i o n a d o a u n a aplicacin d e W i n d o w s d e u n provecto, o c o m o u n a b i b l i o t e c a d e clase independiente del proyecto.

172

Grupo Editorial Megabyte

Grupo Editorial Megabyte

sSSSBB

*g

Visual Studio 2008

Captulo IV: Visual B a s i c 2008 4. E nel E x p l o r a d o r d eSoluciones, d ac C a m b i a r n o m b r e y coloca S u m i n i s t r o . v b -Microsoft Visual Studio
DOS

fiS?

2. E n e lpanel d e plantillas, d aclic e n B i b l i o t e c a d eclases. E n l a caja n o m b r e dgita s u m i n i s t r o y d a c l i c e n O K . "omore


New Project ftoerfjype?: B- Visual Basic Web ' SmartDevice I - Office \ i-Datbase i Reporting 'es: I -WCF - Worl<f low 5 - Datbase Proects S-OtherLanguages f-.- Distributed Systems Ip Other Project Types B Test Projects 'Tmplales: Visual Studio installed tmplales
Va

1 5 > s u m i n i s t r o
[.NETFramewor_k3.5

jT ti

Test

Analyze

Windows Forms A...

WPF Application WPF Browser Application Consol Application Solution Explorer 0 9 X

3
Empty Project My Templares

a
Windows Service WPF Custom WPF User Windows Control Library Control Library Forms Cont,..

J
; Ready " Ln<t "
:

"

Coll

"

C h1

5. N o t a q u e e l n o m b r e Suministro.vb. s u m i n i s t r o -Microsoft Visual


Efe Edit ' View Hefp Project guild D_ebug

e n e l e d i t o r d e cdigo tambin cambi a

6 . E n e l men f i l e , s e l e c c i o n a S a v e a l l . Studio
Data Tpos Test Anayze

Campos y procedimientos d e propiedades L o s c a m p o s s o n r e a l m e n t e v a r i a b l e s pblicas d e n t r o d e u n a c l a s e , l a s c u a l e s p u e d e n s e r e s t a b l e c i d a s o ledas f u e r a d e l a c l a s e . S o n tiles p a r a l a s p r o p i e d a d e s que n o necesitan ser validadas. P a r a a g r e g a r u n c a m p o a u n a c l a s e , dgita e l s i g u i e n t e cdigo:

BHf ^ ,

vb

Solution Explorer

i ?.
a

z3i<
C l a s s

G8 'i

i O e c l a r a t # Class-j J suministro M M y P r o j e c t

j
L

: P u b l i c

C l a s s

Public situ As

string

B End

1
LiL
' Ready
:

Classl.vb File P r o p e r t i e s . J ,

2J

E n l a m a y o r a d e c a s o s desears u t i l i z a r u n p r o c e d i m i e n t o d e l a p r o p i e d a d para agregar u n ap r o p i e d a d a u n aclase. L o s p r o c e d i m i e n t o s d e l a propiedad t i e n e n t r e s p o r c i o n e s : u n a declaracin d e u n a v a r i a b l e p r i v a d a p a r a a l m a c e n a r c ! valor de l apropiedad; u n procedimiento G E T que expone e lvalor; y u n procedimiento S E T que fija el valor.

Grupo Editorinl Mtgabytn"

Grupo Editorial Megabyte

S S S S

Imm

Visual Studio 2008

Captulo IV: Visual Basic 2008


suministro.vb* j ^ a r t f a g e J f o r m l . v b *

Por ejemplo:

w [%
Prvate Public Get ame = nombre End Get Sct(ByVal valu As String), nombre As Property String String NameQ As

suministro

i j ( D e c l a r a t i o n s )

I] P u b l i c C l a s s Prvate Prvate Prvate Prvate

suministro cdigo A s S t r i n g nombre A s S t r i n g descripcin A s S t r i n g s i t u As Boolean

4. A d i c i o n a los siguientes p r o c e d i m i e n t o s para l a propiedad: nombre = valu l nd Sel


'suministro (Declarations)

End

Property

L a p r i m e r a lnea d e c d i g o d e c l a r a

como privada

la variable

tipo

dena Descsuministro, la cual almacena n l apropiedad E n d .

e l valor de lapropiedad. E l

ocedimiento delapropiedad empieza con lapropiedad Public y termina E l p r o c e d i m i e n t o G E T c o n t i e n e e l cdigo q u e v a a s e r e j e c u t a d o ando riable leas el valor, p o r ejemplo si lees la propiedad en la rsona.descripcin, e l cdigo t e retornara e l v a l o r a l m a c e n a d o Descsuministro. u n valor pasado como

E l p r o c e d i m i e n t o S E T c o n t i e n e cdigo u s a d o p a r a a s i g n a r u n n u e v o lor a la variable D e s c s u m i n i s t r o , usando gumento.

Public Property primercodigo() As String Get p r i m e r c o d i g o = cdigo End Get S e t ( B y V a l valu A s S t r i n g ) cdigo = valu End S e t End P r o p e r t y P'>lic P r o p e r t y p r i m e r n o m b r e ( A s S t r i n g Get priiriernombre nonbre .End Get S e t ( B y V a l valu A s S t r i n g ) n o m b r e = valu End S e t End P r o p e r t y Public Property primeradescripcion() As String Get p r i r o e r a d e s c r i p c i o n = descripcin End Get S e t ( B y V a l valu A s S t r i n g ) descripcin = valu End S e t Propertv

"3

Para agregar propiedades a t u s clases: Abre;clproyecto Suministro. E n e l E x p l o r a d o r d e Soluciones, selecciona S u m i n i s t r o . v b , y d adoble clic I p a r a V e r Cdigo. '
<j

End

A d i c i o n a l a s i g u i e n t e declaracin d e cdigo

5 . E n e l men f i l e ,

selecciona S a v e A l l .

JjrS.-^

Grupo Editorial Megabyte

Grupo Editorial Megabyte

"55-

Visual Studio 2008


iuministro.vb* i'startPage V X

Propiedades R e a d O n l y y W r i t e O n l y A l g u n a s propiedades s o n establecidas u n a sola v e z y n o p u e d e n ser cambiadas d u r a n t e l a ejecucin d e l p r o g r a m a . L a palabra clave r e a d O n l y se utiliza para especificar q u e u n v a l o r d e p r o p i e d a d p u e d e s e r ledo p e r o n o s e r m o d i f i c a d o . S i i n t e n t a s a s i g n a r u n v a l o r a u n a p r o p i e d a d r e a d O n l y , ocurrir u n e r r o r e n e l e d i t o r d e cdigo. Prvate IDNume As Property Integer
-

Public Class Suministro Prvate t v A s I n t e g e r


^^~7TTT~i ii m ni' M <m Mi iiiV TI ifII

A d i c i o n a l o s s i g u i e n t e s p r o c e d i m i e n t o s d e p r o p i e d a d e s d e b a j o d e l a declaracin:

ReadOnly Get

ID() As

Integer

ID = IDNume End End Get Property

A s i m i s m o l apalabra clave W r i t e O n l y p e r m i t e que n o se lea e lv a l o r d e u n a propiedad. Prvate valorcontrasea As String

WriteOnly Property SetfByVal

PassworaQ String) valu

As

String

valu As

valorcontrasea= End End Set Property

Mtodos d e u n a c l a s e
L o s mtodos d e u n a c l a s e s o n p r o c e d i m i e n t o s o f u n c i o n e s d e c l a r a d o s d e n t r o de l a clase.

E n l a clase s u m i n i s t r o , puedes agregar d o s propiedades: u n a propiedad de W r i t e O n l y C a l c u l a t v q u e representa e l tiempo de vida, y u n a propiedad de R e a d O n l y t v q u e d e v u e l v e u n v a l o r c a l c u l a n d o l a d i f e r e n c i a e n t r e e l ao a c t u a l y e l ao d e s u adquisicin! Para adicionar las propiedades R e a d O n l y y W r i t e O n l y a t u clase adiciona

Public

Sub

RecalcularQ

End Sub Public Function

CuentadeBalance(NumCuenta

As Integer)

As

Double

flg

"CV

7 .

End

Function

Grupo Editorial Megabyte

SS55

Grupo Editorial Megabyte

Visual Studio 2008


M i e n t r a s q u e l a m a y o r a d e l o s m t o d o s d e l a c l a s e s o n pblicos, p u e d e s e r q u e tambin d e s e e s a g r e g a r l o s m t o d o s q u e s e p u e d e n u t i l i z a r s o l a m e n t e p o r l a m i s m a clase. E l cdigo p a r a d e c l a r a r u n a funcin p r i v a d a podra s e r e l s i g u i e n t e . Prvate Function calculatv End Function
End

''iBMammmmmmmmmmmmmmmmmmmmmammmmmmUm

Captulo IV: Visual Basic 2008 m m

F o r m l . v b * | ' Forml.vb [ D e d a n f ' Sumnistro.vb* j ^strt Page | IJSuministro R e a d O n l y Get ' t i e m p o v i d a = = My. Computer .d o c k . P r o p e r t y ^ : i(Declarations) A s I n t e g e r

tiertipovida ()

calculatv (ByVal

ao As Integer)

As

Integer - ao

L o c a l T i t g :

= My.Computer.Clock.LocalTime.Year

t i e m p o v i d a End G e t

c a l c u l a t i e m p o v i d a ( t v )

P r o p e r t y

P a r a a d i c i o n a r u n mtodo a u n a c l a s e , r e a l i z a l o s i g u i e n t e : I. ' Abre e l proyecto s u m i n i s t r o I n el Explorador de Soluciones, selecciona s u m i n i s t r o . v b , y luego e nel men v e r s e l e c c i o n a v e r c d i g o . Dim AButton As New . A g r e g a e l s i g u i e n t e cdigo:
Suministro.vb* i "sta -t F a j e "tiempovida Class Suministro deta_descripcion() < > "" Then = nombre "" descripcin As S t r i n g

C r e a r u n a instancia d e clase
P a r a c r e a r u n a i n s t a n c i a d e u n a c l a s e p u e d e s t r a b a j a r c o n e l s i g u i e n t e cdigo: Button

lornil'b*

>oiml.vb[Desgp

C r e a r u n proyecto d e prueba para l a clase Para ello, realiza lo siguiente: 1. A b r e e l p r o y e c t o S u m i n i s t r o . 2. E n e l men F i l e , s e l e c c i o n a a d d , l u e g o s e l e c c i o n a N e w P r o y e c t . . . ^ s u m i n i s t r o - MicrosoftV i
File lEdit View
:

'.Suministro Public

Public If

Function

descripcin deta

descripcin

Else deta_descripcion End I f End Function Function calculatiempovida(ByVal ao As Integer) ao i = My.Computer.Clock.LocalTime.Year = nombre

Pr jject

Build Ctrl+N

Deb

,\] , j . j Z _J

New Project.,. New W e b Site.., N e w File... Open Project...

Shift+Alt+N

Prvate

calculatv End Function

Ctrl+O Shift+Alt+O

... - ............ ..^^0^ij^fiii^

Open W e b Site.., Open File... Add ' Glose Cise P r o j e c t

4.

M o d i f i c a e l cdigo e n l a p r o p i e d a d t v p a r a u s a r u n a funcin p r i v a d a .

New Project.,. j N e w W e b Site,.. | N e w Distributed System Diagram,,.

1;

IssssT

Grupo Editorial Megabyte

Grupo Editorial Megabyte

Visual Studio 2008


3. E ne lpanel d e plantillas, selecciona W i n d o w s F o r m s A p p l i c a t i o n . E n l a caja d e texto, digita P r o b a r S u m i n i s t r o y luego d aclic e n O K .
Add New Project

Captulo IV: Visual Basic 2008


5. E n e l E x p l o r a d o r d eSoluciones, selecciona el proyecto P r o b a r S u m i n i s t

S o l u t i o n Explorer - ProbarSumnis... P ?

f^ Solution 'suminisl

Build
:

oMPlProbarSunrl
I B i . 3 My Proje flU F o r m l . v ,_5 suministro H a y My Proje y Suministi

Rebuild

Clean Publish... Run Cgde Analysis Add A d d Reference... ! Add Service R e f e r e n c e . . .

.-.Si

6. S e m u e s t r a e l c u a d r o d e dilogo p a r a a d i c i o n a r r e f e r e n c i a s . E n e l T a b Proyects, selecciona S u m i n i s t r o y luego d a clic e n O K . 4. E n e l E x p l o r a d o r d eSoluciones, selecciona el proyecto P r o b a r S u m i n i s t r o , d a c l i c d e r e c h o y s e l e c c i o n a E s t a b l e c e r c o m o p r o y e c t o d e i n i c i o (Set as StartUp project).
i S o l u t i o n E x p l o r e r - P r o b a r S u m n i s . . .

A d d

R e f e r e n c e

M
B

JCOM

Pro ect |Biow e| ,cen l


3 S S P t

Proiect Director-/ Build ProbarSumi

Di'ivisai'sbjdio 2 0 0 8 \ s u m i n i s t r o \ s u m i n i s t r o

13
0

My Pro Forml

Rebuild Clean Publish,.. OK ~ ] Cancel I

j i sumnistr
2Ml My Pro j g Sumini:

Vi

R u n Code Analysis et a s a a r t u p Project

7. D a d o b l e c l i c siguiente: Dim suministrol

e n e l f o r m u l a r i o p a r a a b r i r e l e d i t o r d e cdigo, y d i g i t a l o

v1

Debug

As

suministro.suministro

Grupo Editorial Megabyte

cuate* '

.ssss

Grupo Editorial Megabyte

Visual Studio 2008


"J>s^ La palabra suministro se digita dos veces, porque en el primer caso representa el mdulo suministro de la clase de vb; y en el segundo caso es la clasificacin suministro dentro de ese mdulo.

Captulo IV: Visual Basic 2008 !

ttmnmmmmmmmmmmmmmmm

Nota que al momento que estas digitando, se. muestrajtna lista que contiene a todos los miembros de la clase suministro. Puesto que fue agregado como referencia.'

Probar una Clase


Para probar u n a clase, realiza l o siguiente: I. E n el E x p l o r a d o r d e Soluciones, selecciona u n Formulario, y luego e n e l men V i e w , s e l e c c i o n a D e s i g n . ' establece los siguientes controles para el f o r m u l a r i o .
Private Sub Button2_Click(ByVal sender As HsgBox(suministrol.primernombre) KsgBox(CStr(suministrol.tiempovida) i If s u m i n i s t r o l . p r i m e r s i t u = True Then HsgBox(suministrol.primernombre i Else HsgBox(suministrol.primernombre i End I f End Sub End Class Qbject, ByVal e As . "aos") "Est a c t i v o " ) "Est e n d e s u s o " )

5 . E n e l e v e n t o B u t t o n 2 _ C l i c k , a g r e g a e l . s i g u i e n t e cdigo:
^ * tPaa> 'Form.l.vb|
jR s ,

I
H

6 . A l e j e c u t a r e l f o r m u l a r i o s e mostrar l o s i g u i e n t e : Establece las siguientes propiedades para los c o n t r o l e s B u t t o n del f o r m u l a r i o . Cambia la propiedad Text a Actualizar, Detalle y Salir respectivamente. 4 . D a d o b l e c l i c e n e l botn A c t u a l i z a r p a r a a b r i r e l e d i t o r d e cdigo, y l u e g o e n e l e v e n t o B u t t o n l _ C I i c k , a d i c i o n a e l s i g u i e n t e cdigo.

Probar clase

-inlxl

J Button 1

d i / Click
Descfipcii Tiempo Vid a. I
1

Private SubButtonl_Click(ByVal sender As Syste With suministrol .primercodigo = TextBoxl.Text .primernombre = TextBox2.Text .primeradescripcion TextBox3.Text .calculatv = TextBox4.Text .primersitu - CheckBoxl.Checked End With End S u b

Grupo Editorial Megabyte

SSST

Grupo Editorial Megabyte

Captulo IV: Visual Basic 2008

aSj

Ejemplos de Windows F o r m s Applications


ProgramaOOl: Este p r o g r a m a p e r m i t e ingresar el n o m b r e d eu n cliente y el m o n t o total d e su factura y calcula y muestra por separado el Importe c I G V (19%). L a suma del Importe e I G V debe dar el m o n t o de l a factura.

Lbllmporte. Lbllgv.Text

Text = Importe.ToString("#M,mO.OO = Ig\\ToStringC'tm,##0.00?)

")

I n s t r u c c i o n e s d e l Botn B t n N u e v o TxtCliente.Text = = = "" "" ""

Pago de factura

TxtMonto.Text Lbllmporte.Text Lbllgv.Text

= ""

TxtCliente.FocusQ

I n s t r u c c i o n e s d e l Botn B t n C e r r a r CloseQ

Controles

utilizados

P r o g r a m a 002: E s t e p r o g r a m a p e r m i t e c o n v e r t i r g r a d o s F a r e n h e i t a Centgrados o viceversa. E l botn C o n v i e r t e , slo s e a c t i v a c u a n d o se e m p i e z a a escribir los grados.

G r a d o s
^ ^ ^ ^ ^ ^ Q ^ n l ! Q ^ ^ P ' * . ^ F <3f enficit FDT_ih_t 3 - . s n . ip, &j<>

Cdigo I n s t r u c c i o n e s d e l Botn B t n C a l c u l a r

' G r a d o s *C ' S R

Convierte"

O r a d o s *F 1 3 6 . 4 0

" Monto. Importe, ^Motilo importe Jgv =

gv As

Double
Cerrar

Double.Parse(TxtMonto.Text) / 1.19 Importe

= Monto

= Monto -

Grupo Editorial Megabyte

187

Zmm

Visual Studio 2008


i nii w

HMWMBMMI

Captulo IV: Visual Basic 2008

,:; gSfllll | | p | t P l l i l i I n s t r u c c i o n e s d e l e v e n t o CheckedChnged d e lc o n t r o l Labell.Text Labe.Text TxtGrados. = "Grados = "Grados ClearQ = *"' C" F"

RbCelFar

LblResultado.Text

I n s t r u c c i o n e s d e l e v e n t o CheckedChnged Labell.Text Labell.Text = "Grados = "Grados F" C"

del control

RbFarCel

I n s l r u c c i o n c s d e l Botn B t n C o n v i e r t e If RbCelFar.Checked=False MessageBox.Show(''Seleccione "No se puede Convertir And RbFarCel.Checked=False el Tipo de Conversin", Then

Instrucciones del evento T e x t C h a n g e d del control T x t G r a d o s 'Si se digita los grados, BtnConvierte.Enabled se activa el botn Convertir > 0

= Len(Trim(TxtGrados.Text))

",MessageBoxButtons.OK, Instrucciones del evento L o a d del formulario BtnConvierte.Enabled = False

MessageBoxIcon.Error) Exit End If R As Double Sub

Dim Grados, Grados =

Integer.Parse(TxtGrados.Text) = True Then

I n s t r u c c i o n e s d e l e v e n t o c l i c k d e l botn B t n C e r r a r CloseQ

If RbCelFar.Checked R = (Grados Else lilil

* 9 / 5) + 32 : - 32) * 5 / 9 " ' Programa003: Este programa permite registrar en controles L i s t B o x los datos ingresados e n c o n t r o l e s T e x t B o x , N u m e r i c U p D o w n , C h e c k B o x y R a d i o B u t t o n , adems p e r m i t e seleccionarlos y quitarlos.

R .= (Grados End If

' LbIResultado.Text'

R,ToString('%ftO.OO")

Grupo Editorial Megabyte

225S

Grupo Editorial Megabyte

25Ss(E2*

^SSt

V i s u a l S t u d i o 2008

C a p t u l o IV: s u a j B a s i c , 2 0 0 8
v

5!

A l control U p E d a d debes asignarle e n su propiedad M i n i m u n el v ^ E J H \ en M a x i m u n el valor 60, i mmm M

P a r a desarrollar este p r o g r a m a , p r i m e r o debes crear dos p r o c e d i m i e n t o s 1. E s t e p r o c e d i m i e n t o p e r m i t e seleccionar todos los d a l o s d e l e l e m e n t o seleccionado: V H H r V H H r Sub Seleccionar(ByVal Elemento = = As Integer)

LbNombre.Selectedlndex LbTurno.Selectedlndex LbEdad.Selectedlndex LbCasado.Selectedlndex End Sub

Elemento Elemento

Elemento = Elemento

2. E s t e p r o c e d i m i e n t o p e r m i t e q u i t a r e l elemento Sub Quitar(ByVal Elemento As Integer)

seleccionado

LbNombre.Items.RemoveAt(Elemento) LbTurno.Items. LbEdad. Items. RemoveAt(Elemento) RemoveAt(Elemento)

LbCasado.Items.RemoveAt(Elemento) End Sub

' I n s t r u c c i o n e s d e l Botn B t n A g r e g a r Dbn Nombre, Casado, Turno As String

Dim Edad As Byte If TxtNombre. Text. Trini = " " Then MessageBo.x.Show(" TxtNombre.FocusQ Ingrese el Nombre", "Por Favor")

Grupo Editorial Megabyte

. s s H G D

Visual Studio 2008


Exit End If = False And RbTarde.Checked Then el Turno", "Por Favor") = False Sub UpEdad3. Valu = 7 5 CkCasado.Checked RbManana.Checked RbTarde.Checked RbNoche.Checked TxtNombre.FocusQ = = =

Captulo IV: Visual Basic 2008


WWWllill.MIWMWIIIIIUMMIIIIIIMmillll 111,1lili

mSSST

IIHIIIlftBd

| False ----' -"

If RbManana.Checked And RbNoche.Checked MessageBox.Show(" Exit Endlf Sub

= False False False

= False Seleccione

' C a m b i a e l n o m b r e a maysculas Nombre = Edad TxtNombre.Text.ToUpperQ Valu = True Then

'Instrucciones LbNombre Seleccionar

d e le v e n t o

SelectedlndexChanged

d e l control

= UpEdad3.

(LbNombre.Selectedlndex)

If CkCasado.Checked Casado Else Casado Endlf If RbManana.Checked Turno = Elself = "No" = "Si"

'Instrucciones del evento SelectedlndexChanged Seleccionar(LbTurno.Selectedlndex)

del control

LbTurno

'Instrucciones del evento SelectedlndexChanged = True Then Seleccionar(LbEdad.Selectedlndex)

del control

LbEdad

"Maana" = True Then 'Instrucciones LbCasado d e le v e n t o SelectedlndexChanged d e l control

RbTarde.Checked "Tarde"

Turno = Else Turno = End If

Seleccionar(LbCasado.Selectedlndex) "Noche" 'Instrucciones d e lcontrol B t n Q u i t a r If LbNombre.Selectedlndex LbNombre.Items.Add(Nombre) MessageBox.Show("Seleccione 'tems.Add(Edad.ToString) MessageBoxButtons. Turno. Items.Add(Turno) Else h Casa do.Items. Add 'ombre.CIearQ m s s s t m (Casado) m 0 Quitar(LbNombre.Selectedlndex) Endlf OK, MessageBoxIcon.Information) un elemento", "Para Quitar", < 0 Then

Grupo Editorial Megabyte

M W i m i mmmammmmmmmmtmaaammimaimimmm

ZZZZm

Grupo Editorial Megabyte

*8Ss

V i s u a l Studio 2008
BtnLimpiar

'Instrucciones del control LbNombre. Items. LbTurno. Items. LbEdad.Items. LbCasado. ClearQ ClearQ ClearO ClearQ

Items.

Programa004: E s t e p r o g r a m a p e r m i t e l l e n a r u n c o n t r o l L i s t V i e w y m o s t r a r s u informacin en susdiferentes estilos. Tambin p e r m i t e m o s t r a r e n f o r m a i n d i v i d u a l e l e l e m e n t o s e l e c c i o n a d o y agregar nuevos elementos.

A l c o n t r o l I m a g e L i s t l agrgale u n grfico e n s u p r o p i e d a d I m a g e s .

"i

Visual Studio 2008


|

Captulo IV: Visual Basic 2008


' I n s t r u c c i o n e s d e l botn B t n l g n o r a r TxtCodigo.Text TxtNombre.Text TxtSueldo.Text = "" = "" = "" *"'"*

A l c o n t r o l T v P e r s o n a l asgnale e l n o m b r e d e l c o n t r o l I m a g e L i s t l e n s u s propiedades LargelmageListy SmallImageList. A l control C b o V i s t a s adiciona en su propiedad Items los estilos de visualizacion del control L i s t V i e w , en el orden siguiente:

String Collection Editor


Iconos Grandes Detalle Lista Iconos Pequeos Ttulos

3 3

NolngresarQ

:
'Instrucciones del evento F o r m L o a d 'Asigna el formato inicial a lcontrol L i s t V i e w LvPersonal. View = View.Details = True = True ", 50,

LvPersonal.GridLines LvPersonal.FuIlRowSelect LvPersonal.

Columns.Add("Cdigo t. Cen ter)

HorizontalAlignmen LvPersonal.

Columns.Add("Nombre ment.Left)

", 200,

Horizn ta IA l ign LvPersonal.

Columns.Add("Sueldo

",

100,

HorizontalAlignment.Right) 'Llena el Personal 'Crear el procedimiento Sub NolngresarQ TxtNombre.ReadOnly TxtSueldo.ReadOnly 'Activa el botn Enabled = True = True Nolngresar Dim Personal Personal As ListViewItem 0)

= New ListViewItem("001",

Personal.SubItems.Add("Julio Personal.SubItems.Add("2,500.00 LvPersonal.Items.

Dvila ") ")

Nuevo = True e Ignorar

Add(Personal)

(BtNevo. 'Desactiva

los botones Grabar = Fals?. 5

Personal

= New ListViewItem("002",

0)

.BinGrabar.Enabled . Btnlgnorar.Enabled Sub ' "

Personal. Subltems.Add("Oscar

Ruiz ") ")

False

Personal.SubItems.Add("850.00

Grupo Editorial Megabyte

Grupo Editorial Megabyte

"SSg

Visual Studio 2008


LvPersonal. Personal Items. Add(Personal) ", 0) Saavedra ") TxtCodigo.Text

Captulo IV: Visual B a s i c 2008


Format(LvPersonal.Items.Count + 1, "000") I

= New ListViewItem("003

'Permite escribir el N o m b r e y Sueldo TxtNombre.ReadOnly TxtSueldo.ReadOnly TxtNombre. Text TxtSueldo. Text = False = False <

Personal. SubItems.Add("Miguel Personal.Subltems.Add("1,350.00") LvPersonal. Items. Add(Personal) = 1 el cdigo

CboVistas.Selectedlndex ' E v i t a que se modifique TxtCodigo. ReadOnly ' L l a m a a l procedimiento NolngresarQ

TxtNombre. Focus Q 'Desactiva el botn = Nuevo False e Ignorar

= True Nolngresar

BtnNuevo.Enabled 'Activa los botones

Grabar == True = True

BtnGrabar.Enabled 'Instrucciones CboVistas 'Estas instrucciones LvPersonal. d e levento SelectedlndexChanged d e l control Btnlgnorar.Enabled

cambian el estilo de visualizacion CboVistas.Selectedlndex

del control

ListView

' I n s t r u c c i o n e s d e l botn B t n G r a b a r Dim Cdigo, Dim Personal Nombre, As Sueldo As String

View =

ListViewItem

'Instrucciones del evento Click del control 'Estas instrucciones muestran elementos seleccionado. TxtCodigo.Text = _ en las cajas

LvPersonal del

'Asigna los datos ingresados a Variables Cdigo = TxtCodigo.Text

de texto la informacin

Nombre - TxtNombre. Text Sueldo = TxtSueldo.Text ingresados 0)

LvPersonal.SelectedItems(0).SubItems(0).Text TxtNombre.Text = _ Selectedltems(O). tBBf Selectedltems(O).


:

' A g r e g a a lcontrol L i s t V i e w los datos Subltems(l). Text Personal = New ListViewItem(Codigo,

LvPersonal. TxtSueUo^Textjf-^-^ M^LvPersorii.

Personal.Subltems.Add(Nombre) Subltems(2). Text Personal.Subltems.Add(Sueldo) LvPersonal. Items. Add(Personal)


k

' I n s t r u c c i o n e s d e l botn B t n N u c v o ' G e n e r a e l cdigo d e l n u e v o personal

'Llama alprocedimiento Nolngresar NolngresarQ

G r u p o Editorial M e g a b y t e

S S 2 S

G r u p o Editorial M e g a b y t e

*9Mm

Visual Studio 2008 ..^pftuIcHV: Visual Basic 2008

Programa005: E n e s t e e j e m p l o l o s c o n t r o l e s T r e e V i e w estn e n d i f e r e n t e s f o r m u l a r i o s y l a s aulas se agregan a los T r e e V i e w e n e lm i s m o m o m e n t o e n e l q u e se agregan a l control ListBox. Existe u n formulario principal llamado F o r m l que contiene u n control M e n u S t r i p desde d o n d e se l l a m a n a los otros formularios.

ggjj

E l f o r m u l a r i o N 0 2 ( a u l a s x e s p e c ) , p e r m i t e m o s t r a r l a s a u l a s a g r u p a d a s su e s p e c i a l i d a d e n u n c o n t r o l T r e e V i e w ( T v A u I a s E s p ) . ' ' " *

HForm
H U 13 H ,.| Aulas
;

;;-:.-v

'

Agregar Visualizar Finalizar 1 Por especialidad Por especialidad y turno

E l f o r m u l a r i o N 0 1 ( a u l a s ) , p e r m i t e a g r e g a r n u e v a s a u l a s a l c o n t r o l L i s t B o x y a lm i s m o tiempo a los controles T r e e V i e w de los otros formularios. E l f o r m u l a r i o N 0 3 ( a u l a s x e s p e c y t u r n o ) , p e r m i t e m o s t r a r l a s a u l a s a g r u p a d a s por s u especialidad y turno e nu ncontrol T r e e V i e w ( T v A u l a s E s p T u r ) .

m Aulas x Especialidad y ... 123313


E l - Computacin {- Maana & Tarde - CIT023 - CIT066 Noche l - Idiomas j Mariana Tarde S - Noche ENN0G5

IMfTlMP'l '

* - *

**

" .l-r.rn- -

Cerrar
'~"
mw

Grupo Editorial Megabyte

"?S-

Visual Studio 2008

^ )
' I n s t r u c c i o n e s p a r a e l men

Captulo IV: Visual Basic 2008 s 5 S _ _


R V

I n g r e s a l o s tems n e c e s a r i o s p a r a c a d a u n o d e l o s c o m b o s e n l a p r o p i e d a d tems d e l a v e n t a n a d e p r o p i e d a d e s .

Iife

Private Sub AgregarToolStripMenuItem_Ciick(ByVal sender As ObfSXL ByVal e As System.EventArgs) Hanales Agregar'ToolStripMenultcm.Click ' aulas.ShowQ End Sub H

Private Sub PorEspecialidadToolStripMenuItemjClick(ByVal As Object, ByVal e As System.EventArgs) PorEspecialidadToolStripMenuItem.Click aulasxespec. End Sub ShowQ

sender Handles

Private Sub PorEspecialidadYTurnoToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Po r Especia lidad YTurn o ToolStripMen ultem. Cl ick aulasxespecy'turno. End Sub ShowQ

'Instrucciones del evento F o r m L o a d del formulario Principal. Estas instrucciones agregan loselementos principales de cada uno d e l o s controles T r e e V i e w que se e n c u e n t r a n e n e l F o r m 2 y F o r m 3 . Private Sub aulas_Load(ByVal sender As System.Object, System.EventArgs) Handles MyBase.Load 'Agrega los elementos para el TreeView del las aulas por su Forml ByVal e As

'donde se separan aulasxespec. aulasxespec. aulasxespec. 'Agrega

Especialidad

TvAulasEsp.Nodes.Add(Computacin) TvAulasEsp.Nodes.Add(Idiomas) TvAulasEsp.Nodes.Add(Enfermeria) donde

los elementos para el TreeView del Form3

naTrawaimiiiiMH!'ii'n'iiii

Grupo Editorial Megabyte

i m n i 11 m u a

203

"SIS-

Visual Studio 2008


'se separan Dim Padre As las aulas por Especialidad TreeNode **** y Turno 'Verifica

Captulo IV: Visual Basic 2008


que se hallan ingresado lodos los datos Then Especialida'd) -"Sil L

If CboEspecialidad.

Text = String.Empty la

'**** COMPUTACION Padre = New

MessageBox.Show(Seleccione CboEspecialidad.FocusQ Exit Sub Endlf If CboCiclo.Text = String.Empty

TreeNode(Computacin)

aulasxespecyturno.TvAulasEspTur.Nodes.Add(Padre) Padre.Nodes.A Padre. dd(Maana)

Nodes.Add(Tarde)

Then el Ciclo)

Padre.Nodes.Add(Noche) '*** IDIOMAS Padre = New **** TreeNode(Idiomas) TvA ulasEspTur.Nodes.Add (Padre)

MessageBox.Show(Seleccione CboCiclo.FocusQ Exit Endlf If CboGrupo.Text = String.Empty Sub

aulasxespecyturno. Padre.

Nodes.Add(Maana)

Then el Grupo)

Padre.Nodes.Add(Tarde) Padre.Nodes.Add(Noche) '**** ENFERMERIA Padre = New **** TreeNode(Enfermera)

MessageBox.Show(Seleccione Cbo Grupo. Exit Endlf Sub FocusQ

aulasxespecyturno.TvAulasEspTur.Nodes.Add(Padre) Padre.Nodes.Add(Maana) Padre.Nodes.Add(Tarde) Padre.Nodes.Add(Noche) End Sub


?

If RbManana.Checked = False And RbTarde.Checked RbNoche.Checked = False Then MessageBox.Show(Seleccione Exit Endlf Sub el Turno)

= False

And

' I n s t r u c c i o n e s d e l botn A g r e g a r d e l F o r m u l a r i o F o r m l Estas instrucciones p e r m i t e n agregar las aulas a l c o n t r o l L i s t B o x del f o r m u l a r i o l ' o m i l - y a cadalin*dc l o s c o n t r o l e s T r e e V i e w d e l o s f o r m u l a r i o s F o r m 2 y F o r m 3 . WJ^^.^^^9^M^^h( yVal Svslem.EvcnArgsfHa Dim'Especialidad;
R

Dim Esp, Cic, Gru, Tur, Aula As Select CboEspecialidad.

String

Selectedlndex

Case 0 Esp = CI Case 1 Esp = ID

>s

sender As System.Object, Buttonl.Click String

3yVal

e As

Tumo As

Grupo Editorial Megabyte

SSSg.

Grupo Editorial Megabyte

5SSE!29

*SSs

Visual Studio 2008


Case 2 Esp ~ EN End Select

<V>
Especialidad -

Captulo IV: Visual Basic 2008 g S j


Aula.SubstfingW, t^f* mi TvAulasEsp.Nqdes(0);NgdesJnsert(1, 1, Ai

Select Case Especialidad Case CI aulasxespec. + 1, 00) + 1) Case

Esp - Cic = Format(CBoCiclo.SelectedIndex

Gru = Convert.ToString(CboGrupo.SelectedIndex If RbManana.Checked Tur = M Elself RbTarde.Checked = True Then = True Then

aulasxespec.TvAulasEsp.Nodes(l).desInserid, EN aulasxespec.TvAulasEsp.Nodes(2).Nodes.Insert(l, End Select TreeView del 2) Form3

J,

Aula)

1, Aula)

Tur = T Else Tur Endlf 'Genera el cdigo del aula Aula = Esp & Tur & Cic & Gru 'Busca la nueva Dim X As Integer 1, Aula) For X = 0 To LbAulas.Items.Count LbAulas.Selectedlndex If Lb Aulas.Text = Aula = X Then Aula: & Aula & ya existe, 1, Aula) - 1 aula N

'Agrega el aula en el control Especialidad

= Aula.Substring(0, 1)

Turno = Aula.Substring(2, Select Case Case CI Turno Especialidad

Select Case Case M

aulasxespecyturno.TvAulasEspTur.Nodes(0).Nodes(0).Nodes.Insert(I,

Case

MessageBox.Show(El Verifique) Exit Sub 5 ','

aulasxespecyturno.TvAulasEspTur.Nodes(0).Nodes(I).Nodes.Insert(l,

1, Aula) m V^'*~ - .ListBox

Case

' Endlf ' Em$$&*' | '


A' !

aukisxespecyturno.TvAulasEspTur.Nodes(0).Nodes(2).Nodes.Insert(l, End Case Select ID Turno

SBS&:.." 'Agrega
. *

el aula al control

LbAulas.Items.Add(Aula) Agrega el a ida en el control TreeView del Form2

Select Case Case M

tes
Grupo Editorial Megabyte SSS M S Grupo Editorial Megabyte B s i s G S

\mm

Visual Studio 2008


aulasxespecyturno.TvAulasEspTur.Nodes(l).Nodes(0).Nodes.Insert(l,

Captulo IV: Visual Basic 2008


Utilizacin d e u n c o n t r o l d e u s u a r i o U n c o n t r o l del u s u a r i o es s i m i l a r a cualquier o t r a clase que sepuede rcutilizar e n p r o y e c t o s mltiples, p e r o c o n l a c a p a c i d a d a g r e g a d a d e s e r c o l o c a d o - e n l a caja d e h e r r a m i e n t a s y d e ser m o s t r a d o e n u n fonmilnp D o n d e u n mdulo d e l a c l a s e t i e n e s o l a m e n t e (Mig^^^^^^fSa^oldc u s u a r i o t i e n e cdigo y u n diseador. E l diseador d e l c o n t r o l d e u s u a r i o e s s i m i l a r a u n diseador d e l f o r m u l a r i o , t i e n e caractersticas p a r a c o n t r o l a r e l a s p e c t o y e l comportamiento del control de usuario.

1,

Aula) Case T

1,

Aula)

aulasxespecyturno.TvAuIasEspTur.Nodes(l).Nodes(]).Nodes.Insert(l,

Case 1, Aula)

aulasxespec)'turno.TvAulasEspTur.Nodes(l).Nodes(2).Nodes.Insert(l, End Case Select EN Turno ProgramaOO: Este programa utiliza u n control creado por el usuario que muestra u n grupo d e e l e m e n t o s segn e l v a l o r q u e s e l e a s i g n e e n s u p r o p i e d a d T i p o l a c u a l p u e d e tener los siguientes valores: TvAulasEspTur.Nodes(2).Nodes(0).Nodes.Insert(1, Alfabtico: M u e s t r a l a s l e t r a s d e l a l f a b e t o e n m a y s c u l a s . I m p a r e s : M u e s t r a l o s nmero i m p a r e s e n t r e 1 y 9 9 Case T TvAulasEspTur.Nodes(2).Nodes(l).Nodes.Insert(1, L o s e l e m e n t o s s e m u e s t r a n c u a n d o s e h a c e c l i c e n e l botn V e r q u e f o r m a parte del control de usuario. Case N aulasxespecytumo.TvAulasEspTur.Nodes(2).Nodes(2).Nodes.Insert(l, P a r e s : M u e s t r a l o s nmeros p a r e s e n t r e 2 y 1 0 0 aulasxespecyturno.

Select Case Case M

aulasxespecyturno. 1, Aula)

1,

Aula)

1,

Aula) End End End Sub Select Select

' E n cadafcuno/deirlos botones C e r r a r HidefiSmlkM^

escribe:

* *.
Grupo Editorial Megabyte

. s s s s G B

" S 5 i V j s u d Studio 2008 1 . D e s p u s d e c r e a r u n n u e v o p r o y e c t o y f o r m u l a r i o , d a c l i c e n l a opcin P r o j e c t y e l i g e Add U s e r C o n t r o l .

_C_ajgt^ 4 . D e s p u s d e d i b u j a r l o s c o n t r o l e s , i n g r e s a a l a v e n t a n a d e cdigo y n i v e l d e f o r m u l a r i o l a v a r i a b l e m _ t i p o p a r a qj^ab_5_aj_jgg e L ^ a ] ^ a" en l apropiedad Tipo. \

>06 - Microsoft Visual Studio


Project i____f [ 1 | Build - Debug - D a t a Too!; Test A Add Windows Form.,, Add User Control... Add Component...

2. C r e a u n n u e v o c o n t r o l l l a m a d o L i s t a . L u e g o d a c l i c e n Add. 5. Despus d e d e f i n i r l a v a r i a b l e , c r e a l a p r o p i e d a d t i p o . i r

i.j(Declarations)

( P u b l i c C l a s s L i s t a Dim rtitipo A s S t r i n g Public Property tipo() As String Get Return mtipo End Get S e t ( B y V a l valu A s S t r i n g ) m t i p o = valu End S e t End P r o p e r t y

. E n e l p a n e l q u e s e v i s u a l i z a d i b u j a u n botn d e c o m a n d o s c o n e l ttulo V e r y un control ListBox.

6 . A h o r a e s c r i b e l a s i n s t r u c c i o n e s d e l botn V e r p a r a a g r e g a r a l c o n t r o l L i s t B o x l o s e l e m e n t o s segn e l v a l o r a s i g n a d o e n e l p r o p i e d a d T i p o .

' I n s t r u c c i o n e s d e l botn V e r Private Sub Button 1_Click(ByVal sender As System.Object, System.EventArgs) Handles Buttonl.Click Dim Ele As Byte L istBox 1. Items. ClearQ Select Case mtipo ByVal e As

= r = r

Grupo Editorial Megabyte

*S5

Visual Studio 2008


Case Pares = 2 To 100 Step 2 Add(Ele)

ForEle

ListBox 1 .Items. Next Case For Impares

Ele = 1 To 99 Step 2 ListBox]' .Items. Add(Ele)

Next Case For Alfabtico Ele = 65 To 90 ListBoxl.Items.Add(Chr(Ele)) Next End End Sub Select

7 . P a r a q u e e l n u e v o c o n t r o l q u e d e c o n s t r u i d o , d a c l i c e n l a opcin B u i l d y l u e g o e n e l n o m b r e d e t u aplicacin.

licrosoft Visual Studio


i Build 1 Debug Data Tools . T e s t , Analyze [ ) Build Programa006 Rebuild Programa006

1 0 . E l cdigo p a r a e s t o s c o n t r o l e s e s e l s i g u i e n t e :

'Instrucciones del control Lista 1.Tipo =

RbAlfabetico

RbAlfabetico.Text RbPares

'Instrucciones del control 8. C u a n d o t e r m i n e , s e l e c c i o n a e l f o r m u l a r i o y d i b u j a e l n u e v o c o n t r o l q u e h a s creado, e l c u a l se e n c u e n t r a e n e l c u a d r o d e h e r r a m i e n t a s . Listal.Tipo = RbPares.Text

'Instrucciones del control Listal.Tipo =

Rblmpares

Rblmpares.Text

Grup(3Edit^

^SS

Visual Studio 2008

Captulo IV: Visual B a s i c 2008


2. E n l a v e n t a n a q u e s e v i s u a l i z a e s c r i b e e l n o m b r c N o t a s p a r a l a c l a s e y l u e g e j

Programa007: E s t e p r o g r a m a u t i l i z a u n a clase l l a m a d a N o t a s que p e r m i t e obtener el p r o m e d i o , l a observacin y l a c u a l i d a d d e u n a l u m n o m e d i a n t e d o s p r o p i e d a d e s mtodos. y tres

d a c l i c e n e l botn A d d .

3. E s c r i b e e l s i g u i e n t e cdigo p a r a l a c l a s e : 'Creacin d e l a clase Public Class Notas para las propiedades As Double Notas

'Variables

Dim m_Notal, 1. P a r a a g r e g a r u n a c l a s e , d a c l i c e n l a opcin P r o y e c t / A d d C l a s s . 'Constructor Public

m_Nota2, m_Promedio de la clase notas

Sub New(ByVal = NI

NI As Double,

ByVal N2 As

Double)

07 - Microsoft Visual Studio


Project [ Build - Deb Add Windows Form. f |J __| .^J! Add User C o n t r o l . . . Add Component,.. Add Module...

m_Notal

m_Nota2 = N2 mPromedio End Sub de la clase As Double = (NI + N2) / 2

'Propiedades Public Get

Property

NotalQ

Add Class...

Grupo Editorial Megabyte

.252

Grupo Editorial Megabyte

" S I -

Visual Studio 2008


Return End Get Double) m_Noal

(\)
Public Function

Capitulo IV: Visual Basic 2008


ObservacionQ As String

If pro > - 10.5 Then Return Else Return


E

Set (ByVal valu As m_Notal End End Public Get Return End Get valu As m_Nota2 Set Property = valu

Aprobado

Desaprobado

"% : "

If Function

End Property Nota2() As Double Public

Function

CualidadQ

As

String

Dim C As String = Select Double) Case pro

Set(ByVal

Case 0 To 5.4 C = Psimo

m_Nota2 = valu End End Set Property de una propiedad proQ As Privada Double

Case 5.5 To 10.4 C = Malo

'Creacin Private Get Return End Get

Case 10.5 To 13.4 C = Regular

Property

Case 13.5 To 16.4 m_Promedio C = Bueno

Case 16.5 To 20 valu As Double) C = Excelente End Select C

Set(ByVal

mPromedio End End


i

= valu Return

Set Property d la clase


...
>-

'Mtodos
'

End
i

Function Class

..

End PromedioQ :'


:

Public

Function

As

Double ' I n s t r u c c i o n e s d e l botn B t n C a l c u l a r

Return pro wEnd Function

Grupo Editorial Megabyte

Grupo Editorial Megabyte

isssBB

Visual Studio 2008


ByVal e As MessageBox.Show(La Dim A, B As 'Verifica Double TxtN o tal.Text que se hayan ingresado = String.Empty las notas TxtNota2. IfTxtNotal.Text Then Exit MessageBox.Show(Ingrese la Nota N 01, Para calcular el Sub Endlf 'Crea una instancia Dim Calificaciones 'Muestra = String.Empty Then la Nota N" 02, Para calcular el los FocusQ - Verifique)

Captulo IV: Visual Basic 2008 y !


NotaWo2'debe estar entre flH

Prvate Sub Button 1_Click(ByVal sender As System.Object, System.EventArgs) Handles Buttonl.Click

-.,;VuV--' ^ B K
I H u H t

promedio) TxtNotal.FocusQ Exit End If Sub

de la clase

Notas B)

As New Notas(A,

resultados Text = Calificaciones.Promedio. Text = Calificaciones. ToString Observacin Cualidad

IfTxtNotal.Text promedio) TxtNota2.FocusQ Exit Endlf Sub

LblPromedio. LblObservacion. LblCualidad. End Sub

MessageBox.Show(Ingrese

Text = Calificaciones.

' I n s t r u c c i o n e s d e l botn B t n N u e v o ingresadas Text) TxtNombre. Text - TxtNotal.Text TxtNota2.Text TxtNotal.FocusQ = =

'Almacena las notas

A = Double.Parse(TxtNotal. B = 'Verifica IfA<0OrA>

Double.Parse(TxtNota2.Text) que las notas estn entre 0 y 20 20 Then Nota N" 01 debe estar entre 0 y 20,

MessageBox.Show(La Verifique) TxtNota l.Text = xtNoial r-^/'^Exit Sub .FocusQ ;-. ,',' ,

' I n s t r u c c i o n e s d e l botn Private

BtnCerrar sender As System.Object, ByVal e As

Sub Buttoni_Click(ByVal Handles

System.EventArgs) CloseQ End Sub

Button3.Click

<0OrB

> 20 Then

QOS!Sn

G r u p o Editorial Megabyte

mmmmmmmmmmmmmnmnmwwmmmmmmmm

Grupo Editorial Megabyte

"22

Visual Studio 2008

Y
m_Numero = valu
End Set ".r'-L

Captulo IV: Visual Basic 2008

Programa008: E s t e p r o g r a m a p e r m i t e i n g r e s a r u n nmero m e n o r q u e 1 2 y m o s t r a r s u f a c t o r i a l y u n m e n s a j e i n d i c a n d o s i e l nmero e s p r i m o o n o .

'

..*.*

End

Property de la cas Factorial(){As


; , ,

. . . Integer ' '


v

Identificar nmero
." ?f:Cngfea un "Nmero}

'Mtodos Public

Function

Dim X, F As Integer \mm If Numero > 11 Then MessageBox.Show(Ingrese

Valores entre 0 y 11, Por

Favor)

...

Exit Endlf F=
;'.

Function

'TlWWl^

I I ililMlililTIw
. . . .

1 X = 1 To m_Numero F = F*X

f% -Prim- : V ; ? | N o ;

For

Next 'Contenido d e la clase informe Public Class Informe Long clase Numero As Integer) End Public Return F

Function Function PrimoQ As String

Dim m_Numero As 'Constructor Public de la

Dim X As

Integer = False

Sub New(ByVal

Dim Sw As Boolean

m_Numero = Numero End Sub de la clase NumeroQ As Integer

If m_Numero < 3 Then Sw = False For X - 2 To m_Numero - 1 If m_Numero Mod X = 0 Then Sw = True End If

'Propiedad Public Get Return FndGerf:/:; Set(ByVal

Property

m_Niunero . valu As Integer)

Next If Sw = True Then Return No

Grupo Editorial Megabyte

3555

222!r^^

J S g

Visual Studio 2008


Else Return Endlf End Function Si

<
Exit Endlf Dim Numero As Integer 'Almacena Sub

Captulo IV: Visual B a s i c 2008

wm

*- '

^BmuW. . .Mt'j _ H _ ^ - J H P

el numero ingresado

End

Class

Numero = Integer.Parse(TxtNumero.Text) 'Crea una instancia de la case Informe

Private Sub Button 1 _Click(ByVal sender As System.Object, System.EventArgs) Handles BtnVer.Click If TxtNumero.Text = String.Empty Then Nmero, Por

ByVal

e As

Dim Num As New 'Muestra los

Informe(Numero)

resultados = Num.Factorial.ToString Primo

LblFactorial.Text Favor) LblPrimo.Text End Sub

MessageBox.Show(Ingrese TxtNumero. Exit Endlf Dim Numero As Integer ingresado Sub FocusQ

= Num.

Programa009: Se ingresa u n descuento e n porcentaje para el cliente y muestra el total vendido al cliente (Precio d e V e n t a * Cantidad) y e l total q u edebe pagar (Total V e n d i d o - U t i l i d a d e n S o l e s ) . P a r a e s t a aplicacin s e u t i l i z a u n a c l a s e d e r i v a d a l l a m a d a T o t a l P a g o s que hereda la clase T o t a l C o m p r apara poder obtener e l total c o m p r a d o por e l cliente y calcular e l total a pagar aplicando e l descuento.

'Almacena el numero Numero =

Integer.Parse(TxtNumero.Text) de la clase Informe

'Crea una instancia Dim Num As New 'Muestra los

Informe(Numero)

resultados = = Num. Num.Factorial.ToString Primo

LblFactorial.Text LblPrimo.Text

' I n s t r u c c i o n e s d e l botn

BtnVer As System.Object, ByVal e As

Private Sub Button 1'_Click(ByValsender System.EventArgs) Handles BtnVer.Click If TxtNumero.Text - String.Empty

Then Nmero, Por Favor)

MessageBox.Show(Ingrese TxtNumero. FocusQ

r|<_22S B

G r u p o Editorial Megabyte

SSSSZ
ir'

G r u p o Editorial Megabyte

a K i i r "
,

___>S_ Visual Studio 2008


' C r e a l a c l a s e t o t a l c o m p r a y asgnale e l s i g u i e n t e c d i g o Public Class TotalCompra As Double

<i
Public Function TotalQ As

Captulo IV: Visual Basic 2008 y * ^


Double % |gg *mamm
-

Dim Utilidad, Select Case

Precio Venta As Double mjCantidad

Dim mJPrecioCompra Dim m_Cantidad 'Constructor Public As

Integer clase Pe As Double, = Pe ByVal Cant As Integer)

Case 1 To 10 Utilidad = 50 m *

de la

Sub New(ByVal

Case 11 To 20 Utilidad = 55.5

mPrecioCompra m_Cantidad End Sub de la

= Cant

C a s e 2 0 T o 4(9 Utilidad =10

'Propiedades Public Get Return End Get

clase As Double End

Case Is > 40 Utilidad Select = m_PrecioCompra * * (1 + Utilidad/100) = 5.5

Property

PCompraQ

mPrecioCompra

PrecioVenta

Return PrecioVenta Double) = valu End End Function Class

mjCantidad

Set (ByVal valu As mPrecioCompra End End Public Get Return End Get valu As
^^HP

Set Property Property CantldadO As Integer 1. 2. mjCantidad

C r e a l a clase h e r e d a d a

totalpago

Para ello realiza lo siguiente: E ne l E x p l o r a d o r d e Soluciones selecciona e l nodo T o t a l C l a s e . E n e l men P r o y e c t , s e l e c c i o n a a d d c l a s s .

09 - Microsoft Visual Studio


Integer) '$:' :;}) V* WSSmm
Project I B a Tools Test A

Set(ByVal

Cantidad

- valu :

Add Windows F o r m . . . Add User C o n t r o l . , . Add Component... Add Module..,

^ f f i f c - v - ' '

tpcrty
[*$

Add C l a s s . . .

C S a S S S i T

Grupo Editorial Megabyte

Grupo Editorial Megabyte

225

Visual Studio 2008


3. E n e l p a n e l d e p l a n t i l l a s s e l e c c i o n a c l a s e . E n l a c a j a d e t e x t o d i g i t a e l n o m b r e T o t a l P a g o y da clic e na d d . Set (ByVal valu As m_Descuento End End Set Property

C a p t u I o IV: Vi s u a I B as i c 2008 _ S Double) j

= valu

Public

Function

PagosQ Pago As

As

Double

Dim DSoles, DSoles Pago Return End End

Double * mjDescuento DSoles /100

= MyBase.Total = MyBase. Total Pago

Function Class

4. E n e l e d i t o r d e cdigo, a d i c i o n a l o s i g u i e n t e : Public Class TotalPago TotalCompra As Double

' I n s t r u c c i o n e s d e l botn B t n C a l c u l a r Private Sub Button 1 jClick(ByVal sender As System.Object, System.EventArgs) Handles BtnCalcular.Click Dim Precio, Dim Cantidad Utilidad As As Integer Parse(TxtPrecio.Text) Text) Text) Cantidad, Utilidad) Double ByVal e As

Inherits

Dim mJDescuento 'Constructor de la

clase ByVal Cant As Integer, ByVal Des As

Sub New(ByVal Double) MyBase.New(Pc, m_Descuento End Sub

Pe As Double,

Precio

= Double.

Cantidad Cant) = Des Utilidad

= Integer.Parse(TxtCantidad. = Integer.Parse(TxtUtilidad. TotalPago(Precio, = =

Dim R As New LblTotal.Text LblPago.Text

R.Total.ToString(#,##0.00) R.Pagos.ToString(#,##0.00)

pSmic Get

Propertv

Descuento!)

As

Double

End

Sub

Ife l Return blia Get

mJDescuento
r

G r u p o Editorial Megabyte

mZmmm

" S S -

Visual Studio 2008


mJMedida End Public Get Return End Get valu As m Valor Sub Property = M

Captulo IV: Visual Basic 2008

ProgramaOlO: Este programa permite ingresar u n valor e nuna unidad de medida y calcula s u e q u i v a l e n t e e n : P u l g a d a s , P i e s , Y a r d a s , M e t r o s , Kilmetros y M i l l a s . Para realizar estas conversiones se utiliza u n a clase l l a m a d a M e d i d a s q u e c o n v i e r t e e l v a l o r i n g r e s a d o a centmetros y e s t a c l a s e e s h e r e d a d a p o r o t r a l l a m a d a c o n v e r s i o n e s q u e c o n v i e r t e d e centmetros a o t r a s u n i d a d e s .

ValorQ As Decimal

. " ^ ^

'''JI

Sel(ByVal

Decimal)

m Valor = valu End End Public Get Return End Get valu As String) mJMedida Set Property Property MedidaQ As String

Set(ByVal

mJMedida End End Public E n e s t a v e n t a n a d e e j e m p l o s e h a c o n v e r t i d o 2 0 0 Centmetros e n s u s e q u i v a l e n t e s : P i e s , Y a r d a s , M e t r o s , Kilmetros y M i l l a s . Set Property Function

= valu

CentimetrosQ

As

Double

Dim C As Select Case Case

Decimal mJMedida

Centmetros

' L a s instrucciones para l a clase m e d i d a son: las's ^^jUin^iCMedida Dim m. Valor As Sub New'(ByVal m Valor = V medidas As String:, Decimal VAs Decimal, t&mzm ByVal M As String)

C = m_Valor Case Pulgadas

C = m_Valor * 2.54 Case Pes

C = m Valor * 30.48

Grupo Editorial Megabyte

Grupo Editorial Megabyte

Im

Visual Studio 2008


Case Yardas * 91.44 End * 100 Public Public Function Return Metros()

Captulo IV: Visual B a s i c 2008


As Decimal / 100
:

C = m_Valor Case Metros

MyBase. Centmetros

\ 4 H H |

Function Function Kilmetros^) As Decimal /100000

C = m_Valor Case

Kilmetros End

Return MyBase.Centimetros Function MillasQ As

C = m Valor * 100000 Case Millas * 161031

Public Function

Decimal / 161031

C = m_Valor End Return End End Select C

Return MyBase.Centimetros End End Function

Class

Function 'Instrucciones p a r a e l botn B t n C o n v e r t i r sender 1.Click String As System.Object, ByVal e As

Class

Private Sub Button 1 _Click(ByVal System.EventArgs) Handles Button ' L a s instrucciones Public Class p a r a l a clase Conversiones son: Dim Medida, conversiones Dim Valor As Inherits medidas Medida Sub New(ByVal MyBase.New(V, End Sub PulgadasQ As Decimal / 2.54 VAs Decimal, M) ByVal M As String) Formato = = Decimal Formato As

###,##0.00000 = String.Empty Then el valor, Por favor)

If TxtValor.Text

MessageBox.Show(Ingrese TxtValor.FocusQ Exit Endlf PiesQ As Decimal / 30.48 If RbCentimetros.Checked If RbPulgadas.Checked If RbPies.Checked Decimal / 91.44 If RbYardas.Checked If RbMetros.Checked Sub

Public Function

Return MyBase.Centimetros End Function

Public Function lReturn ^m'<ndFunction iiM&Mpublic Fnciion ' Return End

= True Then Medida = True Then Medida = =

Centmetros Pulgadas

MyBase.Centimetros - . ' YardasQ As

= True Then Medida

Pies = = Yardas Metros

= True Then Medida = True Then Medida

MyBase.Centimetros

Function

I M S M

Grupo Editorial Megabyte

aaS'SZZ

Grupo Editorial Megabyte

" S -

Visual Studio 2008 If RbKilometros.Checked If RbMillas.Chechea Valor = Decimal. Dim Conversin LblCentimetros. LblPulgadas.Text LblPies.Text LblYardas.Text LblMetros.Text LblKilometros. LblMillas.Text End Sub = = True Then Medida = True Then Medida Parse(TxtValor.Text) As New conversiones Text = Conversin. = Conversin. (Valor, Medida) ToString(Formato) ToString(Formato) = = Kilmetros

Millas

Centmetros.

Pulgadas.

Conversion.Pies.ToString(Formato) = Conversin. = Yardas. ToString(Formato)

Captulo IV Visual Basic W P F en Visual Basic


ivas: I - Identificar los pasos para crear una aplicacin WPF Trabajar con controles en una ventana WPF -Identificarlos controles WPF comunes - Seguir los pasos para crear eventos manualmente para los controles WPF Comprender el uso de WPF mediante un ejemplo

Conversion.Metros.ToString(Formato) ToString(Formato)

Text = Conversion.Kilometros. =

Conversin.Millas.ToString(Formato)

Los controles utilizados para este e j e m p l o s o n :

Contenido:
|- Crear una aplicacin WPF Adicionar controles a una ventana WPF usar controles WPF comunes - Creando eventos manualmente para los controles WPF -Crear un dibujo usando WPF
G R U P D I Z E D I T O R A

Megabyte

Das könnte Ihnen auch gefallen