• Sábado 21 de Diciembre de 2024, 17:16

Autor Tema:  Inputbox En C#  (Leído 12628 veces)

Emperorxdevil

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Inputbox En C#
« en: Sábado 21 de Julio de 2007, 17:06 »
0
Si has programado en VB, te acordarás del tipico Inputbox para pedir datos.
 Pues bien, teniendo en cuenta que en C# no existe...
 Por qué no implementarlo ?
 
 Aqui les dejo el code de la clase Inputbox.
 Es estática (no hace falta construir el objeto para usarla) y devuelve datos tipo    string.

Su sintaxis es: Inputbox.Show(Titulo_Ventana,Titulo_Pregunta,Posicion)

 Se usa asi:

Código: Text
  1.  
  2. string n;
  3. n=Inputbox.Show("Inputbox en C#", "Cual es su nombre ? ", FormStartPosition.CenterScreen);
  4. Messagebox.Show(n);
  5.  
  6.  

Q lo disfruten !!

Código: Text
  1.  
  2.  
  3. public static class Inputbox
  4.         {
  5.  
  6.          // Conserva esta cabecera
  7.         //  Emperorxdevil 2007
  8.  
  9.             static Form f;
  10.             static Label l;
  11.             static TextBox t; // Elementos necesarios
  12.             static Button b1;
  13.             static Button b2;
  14.             static string Valor;
  15.  
  16.             /// <summary>
  17.             /// Objeto Estático que muestra un pequeño diálogo para introducir datos
  18.             /// </summary>
  19.             /// <param name="title">Título del diálogo</param>
  20.             /// <param name="prompt">Texto de información</param>
  21.             /// <param name="posicion">Posición de inicio</param>
  22.             /// <returns>Devuelve la escrito en la caja de texto como string</returns>
  23.             public static string Show(string title, string prompt, FormStartPosition posicion)
  24.             {
  25.  
  26.                 f = new Form();
  27.                 f.Text = title;
  28.                 f.ShowIcon = false;
  29.                 f.Icon = null;
  30.                 f.KeyPreview=true;
  31.                 f.ShowInTaskbar = false;
  32.                 f.MaximizeBox = false;
  33.                 f.MinimizeBox = false;
  34.                 f.Width = 200;
  35.                 f.FormBorderStyle = FormBorderStyle.FixedDialog;
  36.                 f.Height = 120;
  37.                 f.StartPosition = posicion;
  38.                 f.KeyPress += new KeyPressEventHandler(f_KeyPress);
  39.                
  40.                 l = new Label();
  41.                 l.AutoSize = true;
  42.                 l.Text = prompt;
  43.  
  44.  
  45.                 t = new TextBox();
  46.                 t.Width = 182;
  47.                 t.Top = 40;
  48.  
  49.                 b1 = new Button();
  50.                 b1.Text = "Aceptar";
  51.                 b1.Click += new EventHandler(b1_Click);
  52.  
  53.  
  54.                 b2 = new Button();
  55.                 b2.Text = "Cancelar";
  56.                 b2.Click += new EventHandler(b2_Click);
  57.  
  58.                 f.Controls.Add(l);
  59.                 f.Controls.Add(t);
  60.                 f.Controls.Add(b1);
  61.                 f.Controls.Add(b2);
  62.  
  63.                 l.Top = 10;
  64.                 t.Left = 5;
  65.                 t.Top = 30;
  66.  
  67.                 b1.Left = 5;
  68.                 b1.Top = 60;
  69.  
  70.                 b2.Left = 112;
  71.                 b2.Top = 60;
  72.  
  73.                 f.ShowDialog();
  74.                 return (Valor);
  75.             }
  76.  
  77.             static void f_KeyPress(object sender, KeyPressEventArgs e)
  78.             {
  79.                 switch(Convert.ToChar(e.KeyChar)) {
  80.  
  81.                     case ('\r'):
  82.                             Acepta();
  83.                     break;;
  84.  
  85.                     case (''):
  86.                             Cancela();
  87.                     break;;
  88.                 }
  89.             }
  90.             static void b2_Click(object sender, EventArgs e)
  91.             {
  92.                 Cancela();
  93.             }
  94.             static void b1_Click(object sender, EventArgs e)
  95.             {
  96.                 Acepta();
  97.             }
  98.             private static string Val
  99.             {
  100.  
  101.                 get { return (Valor); }
  102.                 set { Valor = value; }
  103.             }
  104.             private static void Acepta() {
  105.                 Val = t.Text;
  106.                 f.Dispose();
  107.             }
  108.             private static void Cancela() {
  109.                 Val=null;
  110.                 f.Dispose();
  111.             }
  112.  
  113.  
  114.         }
  115.  
  116.  

Salu2

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Inputbox En C#
« Respuesta #1 en: Lunes 23 de Julio de 2007, 16:29 »
0
Muchas gracias, pero con los TextBox de C# me basta, es cosa de saber implementar, podrias intentarlo, es mas fácil de lo que crees.
 :D
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

Emperorxdevil

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Inputbox En C#
« Respuesta #2 en: Martes 24 de Julio de 2007, 23:51 »
0
No se esactamente a lo que te refieres NeoPro, (ya se que cuestion de codear) pero lo que quise hacer fue 'emular' el Inputbox de VB y creo que lo consegui.

Salu2

jcsanchez1

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Inputbox En C#
« Respuesta #3 en: Jueves 30 de Junio de 2011, 20:31 »
0
Tenias Ciertos errores en el codigo anterior aqui lo escribo corregido y 100% funcional
Citar
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Dialogos
{
    public static class Input
    {
        static Form _f;
        static Label _l;
        static TextBox _t;
        static Button _b1;
        static Button _b2;
        static String _Cadena;
        private static String cadena
        {
            get
            {
                return _Cadena;
            }
            set
            {
                _Cadena = value;
            }
        }
        private static void Aceptar()
        {
            cadena = _t.Text;
            _f.Dispose();
        }
        private static void Cancelar()
        {
            cadena=null;
            _f.Dispose();
        }
        private static String getmensaje(String a)
        {
            _l = new Label();
            _l.Visible = true;
            _l.BackColor = System.Drawing.SystemColors.Control;
            _l.AutoSize = false;
            _l.Location = new System.Drawing.Point(9, 9);
            _l.Size = new System.Drawing.Size(232, 50);
            _l.Text = a;
            return _l.Text;
        }
        /// <summary>
        /// Objeto Estático que muestra un pequeño diálogo para introducir datos
        /// </summary>
        /// <param name="title">Título del diálogo</param>
        /// <param name="prompt">Texto de información</param>
        /// <param name="posicion">Posición de inicio</param>
        /// <returns>Devuelve la escrito en la caja de texto como string</returns>
        public static String Show(String titulo, String Mensaje, FormStartPosition posicion)
        {
            getmensaje(Mensaje);
            _f = new Form();
            _f.Text = titulo;
            _f.ShowIcon = false;
            _f.Icon = null;
            _f.KeyPreview = true;
            _f.ShowInTaskbar = false;
            _f.MinimizeBox = false;
            _f.MaximizeBox = false;
            _f.Width = 250;
            _f.FormBorderStyle = FormBorderStyle.FixedDialog;
            _f.Height = 150;
            _f.StartPosition = posicion;
            _f.KeyPress += new KeyPressEventHandler(f_KeyPress);

            _t = new TextBox();
            _t.Left = 5;
            _t.Width = 232;
            _t.Top = 60;

            _b1 = new Button();
            _b1.Text = "Aceptar";
            _b1.Click += new EventHandler(b1_Click);

            _b2 = new Button();
            _b2.Text = "Cancelar";
            _b2.Click += new EventHandler(b2_Click);
            _f.Controls.Add(_l);
            _f.Controls.Add(_t);
            _f.Controls.Add(_b1);
            _f.Controls.Add(_b2);

            _l = new Label();
            _l.Visible = true;
            _l.BackColor = System.Drawing.SystemColors.Control;
            _l.AutoSize = false;
            _l.Location= new System.Drawing.Point(9,9);
            _l.Size = new System.Drawing.Size(232,50);
            _l.Text = Mensaje;        
           
           
            _l.Visible = true;
            _l.AutoSize = false;        

            _b1.Left = 165;
            _b1.Top = 90;

            _b2.Left = 90;
            _b2.Top = 90;

            _f.ShowDialog();
            return(_Cadena);
        }
        static void f_KeyPress(object sender, KeyPressEventArgs e)
        {
            switch (Convert.ToChar(e.KeyChar))
            {
                case ('r'):
                    Aceptar();
                    break;;
                case(' '):
                    Cancelar();
                    break;;
            }
        }
        static void b1_Click(object sender, EventArgs e)
        {
            if (_t.Text != "")
            {
                Aceptar();
            }
            else
            {
                MessageBox.Show("No ha ingresado un valor",Environment.MachineName);
            }
           
        }

        static void b2_Click(object sender, EventArgs e)
        {
            Cancelar();
        }
    }
}



JaviMarciano

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re:Inputbox En C#
« Respuesta #4 en: Miércoles 28 de Septiembre de 2011, 16:17 »
0
por qué puede ser que me de error cada vez que hay esto:

&#34