none
Hacer visible un boton al seleccionar una fila del datagridview, y hacerlo invisible cuando se deselecciona RRS feed

  • Pregunta

  • Buen dia!
    Quiero que cuando se seleccione un ROW del dataGridView, se haga visible un boton de mi formulario. Y cuando no haya seleccionado ningun renglon, vuelva a ser invisible.

    Esto es lo que quiero lograr. Espero que me hayan entendido.

    Gracias!!


    Fede

    sábado, 10 de enero de 2015 16:07

Respuestas

  • using System;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                button1.Visible = dataGridView1.SelectedRows.Count > 0;
            }
    
            private void dataGridView1_SelectionChanged(object sender, EventArgs e)
            {
                button1.Visible = dataGridView1.SelectedRows.Count > 0;
            }
        }
    }
    

    • Marcado como respuesta FedePerc jueves, 15 de enero de 2015 4:07
    sábado, 10 de enero de 2015 17:35

Todas las respuestas

  • using System;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                button1.Visible = dataGridView1.SelectedRows.Count > 0;
            }
    
            private void dataGridView1_SelectionChanged(object sender, EventArgs e)
            {
                button1.Visible = dataGridView1.SelectedRows.Count > 0;
            }
        }
    }
    

    • Marcado como respuesta FedePerc jueves, 15 de enero de 2015 4:07
    sábado, 10 de enero de 2015 17:35
  • Walter, gracias por tu respuesta.
    Te comento que tu codigo no me funciona.
    Saludos.

    Fede

    domingo, 11 de enero de 2015 22:40
  • FedePerc,

    Lo que compartió Walter me parece perfecto y funcional. ¿Qué problemas has tenido?¿Te marca algún error?

    domingo, 11 de enero de 2015 22:52
  • Ya lo resolvi.
    Lo hice colocando un Timer con un intervalo de 1 milisegundo.

    Aca esta el codigo:

     
     private void timer1_Tick(object sender, EventArgs e)
            {
                if (dataGridView1.SelectedRows.Count > 0)
                {
                    btnEliminar.Visible = true;
                }
                else
                {
                    btnEliminar.Visible = false;
                }
            }


    Fede

    • Marcado como respuesta FedePerc domingo, 11 de enero de 2015 22:58
    • Desmarcado como respuesta FedePerc domingo, 11 de enero de 2015 23:07
    • Marcado como respuesta FedePerc jueves, 15 de enero de 2015 4:06
    • Desmarcado como respuesta FedePerc jueves, 15 de enero de 2015 4:07
    domingo, 11 de enero de 2015 22:58
  • Hola,

    ¿Por qué haces uso de recursos de manera innecesaria? Lo que implementas dará los mismo resultados que lo que te propuso Walter sin necesidad de utilizar un timer y todo lo que ello conlleve.

    domingo, 11 de enero de 2015 23:01
  • El codigo que me paso walter, funciona al seleccionar los encabezados de las columnas, no los renglones. Se entiende?
    Capaz el evento es lo que esta mal.

    Fede

    domingo, 11 de enero de 2015 23:08
  • Hola Fede, gracias por reconsiderar la solución.

    El evento SelectionChanged tiene lugar cuando la selección cambia. Se refiere a la selección de una fila. Reconsidera probar nuevamente bajo el evento mencionado, considera tener la propiedad SelectionMode a FullRowSelect. Si tienes algún problema mencionalo para apoyarte. 

    domingo, 11 de enero de 2015 23:15
  • La propiedad SelectionMode no estaba en FullRowSelect.
    Con esa modificacion, funciona pero el problema es que siempre que haya Rows en el datagrid, siempre quedara visible el boton.

    Fede

    domingo, 11 de enero de 2015 23:33
  • Exacto, nunca pierde la selección en tanto tengas registros. Con qué valor en la propiedad SelectionMode venías trabajando?

    EDITO: Veo que trabajas con el valor RowHeaderSelect. ¿No te parece mejor trabajar con FullRowSelect?

    domingo, 11 de enero de 2015 23:34
  • PERDON, POR ALGUNA RAZON TENGO MAL EL EVENTO, COMO LO ESCRIBO EN EL DESIGNER??


    Fede



    • Editado FedePerc jueves, 15 de enero de 2015 3:59
    jueves, 15 de enero de 2015 3:54
  • ya lo arregle, muchas gracias


    Fede

    jueves, 15 de enero de 2015 4:06