none
Limite de intentos

    Pregunta

  • En C#-Windows Forms.
    Lo que quiero hacer es que por ejemplo tengo 1 listbox(opcion1,2 y 3) y 1 button y cuando presiono el boton cuando tengo seleccionado la opcion 1 si me permita hacerlo pero si vuelvo a presionarlo con la opcion 1 seleccionada me muestre el messagebox.show("");. y si lo intento de nuevo me seguira mostrando el mensaje pero si selecciono la opcion 2 y presiono el boton igualmente como el anterior me permita pero la siguente no.

    viernes, 29 de junio de 2012 6:17

Respuestas

  • Hola

    Haber si te sirve esto

            private List<Listado> listados = new List<Listado>();
    private void Form1_Load(object sender, EventArgs e) { // creamos la lista listados.Add(new Listado("Opcion 1")); listados.Add(new Listado("Opcion 2")); // enlazamos con el listbox listBox1.DisplayMember = "Texto"; listBox1.DataSource = listados; } // Creamos una lista con el texto que se mostrara en el listbox y su numero de pulsaciones public class Listado { public string Texto { get; set; } public Int32 Pulsaciones { get; set; } public Listado(string texto) { Texto = texto; } } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { Listado item=(Listado)listBox1.SelectedValue; item.Pulsaciones++; if (item.Pulsaciones > 1) { MessageBox.Show("Limite superado"); return; } }


    • Editado ToniAG viernes, 29 de junio de 2012 15:26
    • Marcado como respuesta Eder CostaModerator martes, 3 de julio de 2012 13:23
    viernes, 29 de junio de 2012 15:26

Todas las respuestas

  • mmmm, se me ocurre como hacerlo aunque es algo brusco...

    Quizás podrías crear una variable para ir sumando la cuenta de las veces que pinchas... me refiero:

    byte opcion1 = 0;

    hacer una por cada elemento del listbox, o un array si son muchos.

    Y cuando hagas click en el botón, sumarle 1 al seleccionado siempre y cuando sea 0, y si es 1, solta rel messagebox, algo así:

    if (opcion1 == 0)
    {
    opcion1++;
    }
    else
    {
    MessageBox("Necesita escoger otro botón", "Error", MessageBoxButton.OK, MessageBoxIcon.Error);
    }

    Algo así se me ocurre, espero que te haya servido de ayuda


    Programador en entornos Microsoft
    Blog
    Twitter

    viernes, 29 de junio de 2012 7:09
  • No se si es lo que necesitas pero a ver si te puedo ayudar:

    private String itemAnt = String.Empty;
    
    public Form1()
    {
                InitializeComponent();
    }
    
    private void listBox1_Click(object sender, EventArgs e)
    {
       if (listBox1.SelectedItem.ToString() == itemAnt)
           MessageBox.Show("Mensaje");
       else
            itemAnt = listBox1.SelectedItem.ToString();
    }

    Un saludo!!

    viernes, 29 de junio de 2012 7:10
  • yo haría algo así como lo que comenta dudasc, aunque quizás usando listBox1.Tag en lugar de una variable diferente.

    Saludos.

    viernes, 29 de junio de 2012 7:53
  • hola

    y si haces

    private void button1_Click(...){
       MessageBox.Show(listbox1.Text);
    }

    con eso mostrara un mensjae con el item marcado en ese momento

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 29 de junio de 2012 11:57
  • hola

    y si haces

    private void button1_Click(...){
       MessageBox.Show(listbox1.Text);
    }

    con eso mostrara un mensjae con el item marcado en ese momento

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    pero lo que quiero es que en determinado numero de intentos cuando tengo seleccionado un elemento del listbox muestre un mensaje, no me refiero a mostrar el texto de lo que tengo seleccionado.

    viernes, 29 de junio de 2012 14:23
  • Hola

    Haber si te sirve esto

            private List<Listado> listados = new List<Listado>();
    private void Form1_Load(object sender, EventArgs e) { // creamos la lista listados.Add(new Listado("Opcion 1")); listados.Add(new Listado("Opcion 2")); // enlazamos con el listbox listBox1.DisplayMember = "Texto"; listBox1.DataSource = listados; } // Creamos una lista con el texto que se mostrara en el listbox y su numero de pulsaciones public class Listado { public string Texto { get; set; } public Int32 Pulsaciones { get; set; } public Listado(string texto) { Texto = texto; } } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { Listado item=(Listado)listBox1.SelectedValue; item.Pulsaciones++; if (item.Pulsaciones > 1) { MessageBox.Show("Limite superado"); return; } }


    • Editado ToniAG viernes, 29 de junio de 2012 15:26
    • Marcado como respuesta Eder CostaModerator martes, 3 de julio de 2012 13:23
    viernes, 29 de junio de 2012 15:26