Sie sind auf Seite 1von 30

Programacin en Visual Basic

Leccin #2: Estructuras de


Decisin

Por Antonio F. Huertas


Contenido
Enunciado IfThen
Funcin MsgBox() y el enunciado IfThen
Funcin InputBox() y el enunciado IfThen
Controles relacionados
RadioButton, CheckBox, GroupBox
Enunciado Select Case
Validacin de datos
Enunciado IfThen
Permite que el programa decida cul es la
prxima instruccin que deber ejecutarse
basndose en el resultado de una condicin.
Formato If..Then para decisiones de una
alternativa:
If condicin Then
Enunciado(s)
End If
Enunciado IfThen (cont.)
Formato If..Then para decisiones de dos
alternativas:
If condicin Then
Enunciado(s)
Else
Enunciado(s)
End If
Enunciado IfThen (cont.)
Formato If..Then para decisiones de mltiples
alternativas:
If condicin Then
Enunciado(s)
ElseIf condicin Then
Enunciado(s)
ElseIf condicin Then
Enunciado(s)
...
Else
Enunciado(s)
End If
Enunciado IfThen (cont.)
If promedio >= 70 Then If promedio >= 90 Then
MsgBox("Aprob.") nota = "A"
Else ElseIf promedio >= 80 Then
MsgBox("Nos vemos " & _ nota = "B"
"el ao prximo.") ElseIf promedio >= 70 Then
nota = "C"
End If
ElseIf promedio >= 60 Then
nota = "D"
If promedio >= 90 Then Else
MsgBox("Es un durito.") nota = "F"
End If End If
MsgBox("Su nota es " & _
nota)
Funcin MsgBox()
Como el enunciado MsgBox es usada para
mostrar un mensaje en la pantalla en su
propia ventana de dilogo (dialog box).
Permite controlar cules botones se muestran
y devuelve un cdigo indicando el botn
presionado.
Formato:
variable = MsgBox(mensaje, [botones +
cono], [ttulo])
Funcin MsgBox() (cont.)
Los botones se indican usando una de las siguientes
constantes:
vbOKCancel o MsgBoxStyle.OKCancel
vbAbortRetryIgnore o
MsgBoxStyle.AbortRetryIgnore
vbYesNoCancel o MsgBoxStyle.YesNoCancel
vbYesNo o MsgBoxStyle.YesNo
vbRetryCancel o MsgBoxStyle.RetryCancel
Para indicar que el segundo o tercer botn son
default, se usa:
vbDefaultButton2 o MsgBoxStyle.DefaultButton2
vbDefaultButton3 o MsgBoxStyle.DefaultButton3
Funcin MsgBox() (cont.)
El valor que devuelve la funcin MsgBox() es
un nmero entero representado por una de
las siguientes constantes:
vbOk
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
Funcin MsgBox() (cont.)
Private Sub btnExit_Click() Handles btnExit.Click
Dim response As Integer
response = MsgBox("Do you really want to exit?", _
vbYesNo + vbCritical + vbDefaultButton2, _
"Exit?")
If response = vbYes Then
End
End If
End Sub
Funcin InputBox()
Usada para obtener un dato del usuario en su
propia ventana de dilogo (dialog box).
La ventana permanecer en pantalla hasta
que el usuario presione Ok o Cancel.
Formato:
variableAlfanumrica = InputBox(mensaje,
[ttulo], [respuestaInicial])
variableNumrica = Val(InputBox(mensaje,
[ttulo], [respuestaInicial]))
Funcin InputBox() (cont.)
Private Sub Form1_Load(...) Handles MyBase.Load
Dim userName As String
userName = InputBox("Enter your name:", "Enter name")
If userName = "" Then
MsgBox("You entered nothing or pressed Cancel!", _
MsgBoxStyle.Exclamation, "Result")
Else
MsgBox("Hello, " & userName, _
MsgBoxStyle.Information, "Result")
End If
End Sub
Control Radio Button
Un radio button es un control que permite
que el usuario escoja una opcin de una lista
de opciones mutuamente excluyentes. El
prefijo es rad o rdb.
Propiedad importante:
Checked indica si el radio button ha sido
seleccionado o no.
Evento importante:
CheckedChanged se ejecuta cuando se da click
sobre el radio button.
Control Radio Button (cont.)
Control Radio Button (cont.)
Private Sub btnVote_Click() Handles btnVote.Click
If radBras.Checked = True Then
txtResults.Text = "You voted for Lillian Bras."
ElseIf radDiaz.Checked = True Then
txtResults.Text = "You voted for Jose J. Diaz."
ElseIf radHuertas.Checked = True Then
txtResults.Text = "You voted for Antonio Huertas."
Else
txtResults.Text = "You voted for no one!"
End If
End Sub
Control Check Box
Un check box es un control que permite que
el usuario escoja una o varias opciones de
una lista de opciones. El prefijo es chk.
Propiedad importante:
Checked indica si el check box ha sido
seleccionado o no.
Evento importante:
CheckedChanged se ejecuta cuando se da click
sobre el check box.
Control Check Box (cont.)
Control Check Box (cont.)
Private Sub btnCalculate_Click() Handles btnCalculate.Click
Dim payment As Decimal
If chkDrugs.Checked = True Then
payment += 12.51
End If
If chkDental.Checked = True Then
payment += 9.68
End If
If chkVision.Checked = True Then
payment += 1.5
End If
If chkMedical.Checked = True Then
payment += 25.25
End If
txtPayment.Text = Format(payment, "Currency")
Control Group Box
El group box es un control pasivo que sirve
para agrupar controles relacionados. Su
prefijo es grp.
Enunciado Select Case
Una alternativa a los Ifs anidados es el uso del
enunciado Select Case.
Formato:
Select Case expresinSelectora
Case listaExpresiones
Enunciado(s)
Case listaExpresiones
Enunciado(s)
...
Case Else
Enunciado(s)
End Select
Enunciado Select Case (cont.)
La expresinSelectora puede ser cualquier
expresin numrica o alfanumrica.
Una listaExpresiones es una lista de
expresiones separadas por coma. Estas
expresiones pueden ser valores o grupos de
valores.
Los casos no pueden estar sobrepuestos.
Enunciado Select Case (cont.)
Dim rating As Integer
Dim bonus As Single

rating = Val(txtRating.Text)
Select Case rating
Case Is > 4
bonus = 0.150
Case 4, 3
bonus = 0.1
Case 2
bonus = 0.075
Case 1
bonus = 0.05
Case Else
bonus = 0
End Select
Enunciado Select Case (cont.)
Dim age As Integer

age = Val(txtAge.Text)
Select Case age
Case Is < 21
MsgBox("You are a minor.")
Case 21 To 64
MsgBox("You are an adult.")
Case Is > 64
MsgBox("You are a senior.")
End Select
Validacin de datos
Existen dos formas principales para
asegurarse de que un valor entrado es
adecuado.
Reaccin: recoger el valor y usar el enunciado
If..Then para revisarlo.
Prevencin: evitar que se pueda entrar un
valor inadecuado. Esto es lo preferible.
Validacin de datos (cont.)
Ejemplo de reaccin (usando un text box):
If txtSex.Text = "M" Then
MsgBox("You are a man.")
ElseIf txtSex.Text = "F" Then
MsgBox("You are a woman.")
Else
MsgBox("Input Error.", vbExclamation)
txtSex.Focus()
End If
Ejemplo de prevencin (usando dos radio buttons):
If radMasculine.Checked Then
MsgBox("You are a man.")
Else
MsgBox("You are a woman.")
End If
Validacin de datos (cont.)
Una funcin que ayuda a validar un valor
numrico en un text box es IsNumeric().
If IsNumeric(txtAge.Text) = False Then
MsgBox("Input Error.", vbExclamation)
txtAge.Focus()
Else
age = Val(txtAge.Text)
If age < 0 Or age > 120 Then
MsgBox("Input Error.", vbExclamation)
txtAge.Focus()
Else
...
End If
End If
Validacin de datos (cont.)
Otra forma de validar es previniendo que se entre un
caracter inadecuado en el text box mediante el
evento KeyPress.
Este evento ocurre despus de presionar una tecla
pero antes de mostrar el caracter en pantalla.
En este evento, el parmetro e contiene dos
propiedades importantes:
KeyChar contiene el cdigo Ascii del caracter presionado
Handled True para ignorar el caracter presionado
Validacin de datos (cont.)

' Form-level constants


Private Const SPACE As Char = Chr(32)
Private Const BACKSPACE As Char = Chr(8)
Validacin de datos (cont.)
Private Sub txtName_KeyPress() Handles txtName.KeyPress
Select Case e.KeyChar
Case "A" To "Z", "a" To "z"
' Letter - do nothing
Case SPACE, BACKSPACE
' Space or backspace - do nothing
Case Else
Beep()
e.Handled = True
End Select
End Sub
Validacin de datos (cont.)
Private Sub txtAge_KeyPress() Handles txtAge.KeyPress
Select Case e.KeyChar
Case "0" To "9"
' Digit - do nothing
Case BACKSPACE
' Backspace - do nothing
Case Else
Beep()
e.Handled = True
End Select
End Sub

Das könnte Ihnen auch gefallen