No os quejareis, qué os pongo el ejercicio completo!!!
Public Class Form2
Enum Tipos As Short
Bin = 2
Oct = 8
Dec = 10
Hex = 16
End Enum
Dim origen As Tipos
Dim destino As Tipos
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvertir.Click
Dim intermedio As String = ""
intermedio = Convert.ToInt64(tbOrigen.Text, origen)
tbResultado.Text = Convert.ToString(CInt(intermedio), destino).ToUpper
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
tbOrigen.Text = ""
tbResultado.Text = ""
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
optOrDec.Checked = True
optDeBin.Checked = True
End Sub
Private Sub optOrDec_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optOrBin.CheckedChanged, optOrOct.CheckedChanged, optOrDec.CheckedChanged, OptOrHex.CheckedChanged
origen = sender.tag 'Sirve para ver que tipo de comprobación de teclado debo hacer
Select Case sender.tag
Case Tipos.Bin
comprobarBin()
Case Tipos.Oct
comprobarOct()
Case Tipos.Dec
comprobarDec()
Case Tipos.Hex
comprobarHex()
End Select
End Sub
Private Sub tbOrigen_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tbOrigen.KeyPress
e.KeyChar = UCase(e.KeyChar)
Select Case origen
Case Tipos.Bin
If e.KeyChar <> "0" And e.KeyChar <> "1" Then
e.Handled = True
End If
Case Tipos.Oct
If Not (e.KeyChar >= "0" And e.KeyChar <= "7") Then
e.Handled = True
End If
Case Tipos.Dec
If IsNumeric(e.KeyChar) = False Then
e.Handled = True
End If
Case Tipos.Hex
If IsNumeric(e.KeyChar) = False And Not (e.KeyChar >= "A" And e.KeyChar <= "F") Then
e.Handled = True
End If
End Select
End Sub
Private Sub comprobarBin()
Dim noBin As Boolean = False
For i = 0 To tbOrigen.Text.Length - 1
If tbOrigen.Text.Chars(i) <> "0" And tbOrigen.Text.Chars(i) <> "1" Then
noBin = True
End If
Next
If noBin = True Then
MsgBox("El numero a convertir tiene caracteres no válidos")
tbOrigen.Text = ""
End If
End Sub
Private Sub comprobarOct()
Dim noOct As Boolean = False
For i = 0 To tbOrigen.Text.Length - 1
If Not (tbOrigen.Text.Chars(i) >= "0" And tbOrigen.Text.Chars(i) <= "7") Then
noOct = True
End If
Next
If noOct = True Then
MsgBox("El numero a convertir tiene caracteres no válidos")
tbOrigen.Text = ""
End If
End Sub
Private Sub comprobarDec()
Dim noDec As Boolean = False
For i = 0 To tbOrigen.Text.Length - 1
If IsNumeric(tbOrigen.Text.Chars(i)) = False Then
noDec = True
End If
Next
If noDec = True Then
MsgBox("El numero a convertir tiene caracteres no válidos")
tbOrigen.Text = ""
End If
End Sub
Private Sub comprobarHex()
Dim noHex As Boolean = False
For i = 0 To tbOrigen.Text.Length - 1
If IsNumeric(tbOrigen.Text.Chars(i)) = False And Not (tbOrigen.Text.Chars(i) >= "A" And tbOrigen.Text.Chars(i) <= "F") Then
noHex = True
End If
Next
If noHex = True Then
MsgBox("El numero a convertir tiene caracteres no válidos")
tbOrigen.Text = ""
End If
End Sub
Private Sub optDeBin_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles optDeBin.CheckedChanged, optDeOct.CheckedChanged, optDeDec.CheckedChanged, optDeHex.CheckedChanged
destino = sender.tag
tbResultado.Text = ""
End Sub
End Class
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario