martes, 17 de febrero de 2015

Clase para crear una ventana de dialogo con captura (ShowDialog)

Cascaron DataLayerIng Hola esta ves les traigo una muy util clase que genera un ventana tipo ShowDialog pero con una cmapo que valida que no este vacio un campo y que sea el mismo en mi casi la use para introducir un correo electronico; la clase la pongo a continuacion:
class Prompt
        {
            public static string ShowDialog(string text1, string text2, string caption, String OkButton)
            {
                Form prompt = new Form();
                prompt.Width = 450;
                prompt.Height = 180;
                prompt.Text = caption;
                prompt.FormBorderStyle = FormBorderStyle.FixedDialog;
                prompt.TopLevel = true;
                prompt.ShowInTaskbar = true;
                prompt.MaximizeBox = false;
                prompt.MinimizeBox = false;


                Label textLabel = new Label() { Left = 10, Top = 10, Width = 400, Height = 20, Text = text1 };
                TextBox textBox = new TextBox() { Left = 10, Top = 30, Width = 400, Height = 20, };

                Label textLabel2 = new Label() { Left = 10, Top = 52, Width = 400, Height = 20, Text = text2 };
                TextBox textBox2 = new TextBox() { Left = 10, Top = 72, Width = 400, Height = 20, };

                Button confirmation = new Button() { Text = OkButton, Left = 290, Width = 100, Top = 102 };

                prompt.FormClosing += (sender, e) =>
                {
                    if (textBox.Text.Trim() == "")
                    {
                        MessageBox.Show("El correo esta vacio");
                        e.Cancel = true;
                    }
                    else
                    {
                        if (textBox.Text.Trim() == textBox2.Text.Trim())
                        {
                            e.Cancel = false;
                        }
                        else
                        {
                            MessageBox.Show("El correo no es igual");
                            e.Cancel = true;
                        }
                    }
                };

                confirmation.Click += (sender, e) => {

                    if (textBox.Text.Trim() == "")
                    {
                        MessageBox.Show("El correo estavacio");
                        return;
                    }
                    else
                    {
                        if (textBox.Text.Trim() == textBox2.Text.Trim())
                        {
                            prompt.Close();
                        }
                        else
                        {
                            MessageBox.Show("El correo no es igual");
                            return;
                        }
                    }
                };
                prompt.Controls.Add(confirmation);
                prompt.Controls.Add(textLabel);
                prompt.Controls.Add(textBox);
                prompt.Controls.Add(textLabel2);
                prompt.Controls.Add(textBox2);
                prompt.ShowDialog();
                prompt.Controls[
                prompt.Controls.IndexOf(textBox)].Focus();
                prompt.AcceptButton = confirmation;
                return textBox.Text;
            }
        }
Ahora el llamado es bastante sencillo:
String Respuesta = Prompt.ShowDialog("Mail", "Confirma Mail", "Captura Correo","Guardar");

No hay comentarios:

Publicar un comentario