Buscar este blog

sábado, 22 de febrero de 2014

Desarrollar un programa que emule el funcionamiento de OutLook - .VB.NET 2012 - 2013


Se registran los contactos y se guardan en la lista (tabla), cuando se selecciona un registro se podrá eliminar y editar, si se da doble clic sobre el registro se activa la pestaña de envío de correo para escribir el asunto y contenido y poder enviar el correo. 
Manejo de contactos (registrar, editar, eliminar).- Todo es sobre memoria- (Guardar en Datatable) (NO conexión a base de datos)  
Validación de datos de ingreso.- Debe permitir un correo válido, no debe aceptar el “@” como primer carácter, no debe aceptar espacios en blanco, no debe permitirse el ingreso de más de un arroba), Validar que el ingreso de los demás datos sea correcto, validar que no falte ningún dato para el correcto envío del correo. 
Envío de correo .- Para validar la practica debe llegar un correo a: hmejiac@crece.uss.edu.pe con el asunto “solución ejercicio 6” y como contenido sus “nombres y apellidos”, este correo debe ser enviando desde su aplicación.

  


Imports System.Net.Mail
Imports System.Net
Public Class Pregunta2
    Private Sub btnGuardar_Click(sender As System.Object, e As System.EventArgs) Handles btnGuardar.Click
        Dim Apellidos As String = txtApellidos.Text
        Dim Nombres As String = txtNombres.Text
        Dim Telefono As String = txtTelefono.Text
        Dim Email As String = txtEmail.Text
        Dim Contacto As New Lista
        Contacto.mApellidos = Apellidos
        Contacto.mNombres = Nombres
        Contacto.mTelefono = Telefono
        Contacto.mEmail = Email
        ListaContactos.Add(Contacto)
        Dim C As New Lista
        Dim Tabla As New DataTable()
        Tabla.Columns.Add("APELLIDOS")
        Tabla.Columns.Add("NOMBRES")
        Tabla.Columns.Add("TELEFONO")
        Tabla.Columns.Add("EMAIL")
        For X As Integer = 0 To ListaContactos.Count - 1
            C = ListaContactos(X)
            Dim Datos As String() = {C.mApellidos, C.mNombres, C.mTelefono, C.mEmail}
            Tabla.Rows.Add(Datos)
        Next
        dgvContactos.DataSource = Tabla
        MessageBox.Show("Proveedor grabado satisfactoriamente", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        txtApellidos.Clear()
        txtNombres.Clear()
        txtTelefono.Clear()
        txtEmail.Clear()
        txtApellidos.Focus()
    End Sub

    Private Sub dgvContactos_CellDoubleClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvContactos.CellDoubleClick
        TabControl2.SelectedIndex = 1
    End Sub

    Private Sub btnEliminar_Click(sender As System.Object, e As System.EventArgs) Handles btnEliminar.Click
        Dim Fila As DataGridViewRow
        For Each Fila In dgvContactos.SelectedRows
            dgvContactos.Rows.RemoveAt(Fila.Index)
            If Fila.Index > -1 Then
                ListaContactos.RemoveAt(Fila.Index)
            End If
        Next
    End Sub

    Private Sub btnEditar_Click(sender As System.Object, e As System.EventArgs) Handles btnEditar.Click
        For Each Fila In dgvContactos.SelectedRows
            If Fila.Index > -1 Then
                txtApellidos.Text = dgvContactos.Item(0, Fila.index).Value
                txtNombres.Text = dgvContactos.Item(1, Fila.index).Value
                txtTelefono.Text = dgvContactos.Item(2, Fila.index).Value
                txtEmail.Text = dgvContactos.Item(3, Fila.index).Value
            End If
        Next
    End Sub

    Private Sub txtEmail_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtEmail.KeyPress

    End Sub

    Private Sub txtEmail_Leave(sender As System.Object, e As System.EventArgs) Handles txtEmail.Leave
        If Not (txtEmail.Text.IndexOf("@") >= 2) Then
            MsgBox("Ingrese @ a partir del segundo caracter..!")
            txtEmail.Focus()
        End If
    End Sub
    Private Sub txtApellidos_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtApellidos.KeyPress
        If Asc(e.KeyChar) <> Keys.Space Then
            If Asc(e.KeyChar) < (Keys.A + 32) Or Asc(e.KeyChar) > (Keys.Z + 32) Then
                If Asc(e.KeyChar) <> Keys.Back And Asc(e.KeyChar) < Keys.A Or Asc(e.KeyChar) > Keys.Z Then
                    e.Handled = True
                End If
            End If
        End If
    End Sub

    Private Sub txtNombres_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombres.KeyPress
        If Asc(e.KeyChar) <> Keys.Space Then
            If Asc(e.KeyChar) < (Keys.A + 32) Or Asc(e.KeyChar) > (Keys.Z + 32) Then
                If Asc(e.KeyChar) <> Keys.Back And Asc(e.KeyChar) < Keys.A Or Asc(e.KeyChar) > Keys.Z Then
                    e.Handled = True
                End If
            End If
        End If
    End Sub

    Private Sub txtTelefono_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtTelefono.KeyPress
        If Asc(e.KeyChar) <> Keys.Back And Asc(e.KeyChar) < Keys.D0 Or Asc(e.KeyChar) > Keys.D9 Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtTelefono_Leave(sender As System.Object, e As System.EventArgs) Handles txtTelefono.Leave
        If txtTelefono.Text.Trim.Length < 9 Then
            MsgBox("Debe de ingresar 9 digitos en el celular!")
            txtTelefono.Focus()
        End If
    End Sub

    Private Sub txtTelefono_KeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtTelefono.KeyUp
        If (Not IsNumeric(txtTelefono.Text)) Then
            MsgBox("Debe de ingresar un dato válido para el campo, ...verifique!")
            txtTelefono.Focus()
            txtTelefono.SelectAll()
        End If
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim SMTP As String = txtServidor.Text
        Dim Usuario As String = txtUsuario.Text
        Dim Contraseña As String = txtContraseña.Text
        Dim A As String = txtPara.Text
        Dim Contenido As String = txtMensaje.Text
        Dim Asunto As String = txtAsunto.Text
        Dim Puerto As Integer = Integer.Parse(txtPuerto.Text)
        Dim correo As New System.Net.Mail.MailMessage()
        correo.From = New System.Net.Mail.MailAddress(Usuario)
        correo.Subject = Asunto
        correo.To.Add(A)
        correo.Body = Contenido
        Dim Servidor As New System.Net.Mail.SmtpClient
        Servidor.Host = SMTP
        Servidor.Port = Puerto
        Servidor.EnableSsl = True
        Servidor.Credentials = New System.Net.NetworkCredential(Usuario, Contraseña)
        Servidor.Send(correo)
        MessageBox.Show("Correo enviado!", "Correo", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub
End Class


No hay comentarios:

Publicar un comentario