none
Problemas con un Datagridview wn Vb.Net RRS feed

  • Pregunta

  • Buenas tardes, tengo un problema con un datagridview, al cargarlo y querer personalizar el titulo de las Columnas y el Ancho por medio de codigo me da error. Me envia un mensaje que me dice que el rango de la columna esta fuera de rango

     Private Sub CargarDGV1()
            If RbCodigo.Checked = True Then
                Codi = "Select tb_conductas.cd_conducta, tb_conductas.conducta, tb_niveldominio.niveldominio From tb_conductas INNER JOIN tb_niveldominio ON tb_conductas.ndom = tb_niveldominio.cd_niveldominio order by tb_conductas.cd_conducta"
            Else
                Codi = "Select tb_conductas.cd_conducta, tb_conductas.conducta, tb_niveldominio.niveldominio From tb_conductas INNER JOIN tb_niveldominio ON tb_conductas.ndom = tb_niveldominio.cd_niveldominio order by tb_conductas.conducta"
            End If
            'MsgBox(Cadena)
            Dim da As New OleDbDataAdapter(Codi, Conn)
            Dim ds As New DataSet
            da.Fill(ds)
            DatGvw1.DataSource = ds.Tables(0)
            EstablecerTitulos()
            EstablecerAnchoColumna()
        End Sub

        Private Sub EstablecerAnchoColumna()
            DatGvw1.Columns(0).Width = 20
            DatGvw1.Columns(1).Width = 270
            DatGvw1.Columns(2).Width = 70
        End Sub

        Private Sub EstablecerTitulos()
            DatGvw1.Columns(0).HeaderText = "Código"
            DatGvw1.Columns(1).HeaderText = "Descripción de la Conducta"
            DatGvw1.Columns(2).HeaderText = "Dominio"
        End Sub

    ahorita para que me funcione sin error tengo en comentario, la asignacion de titulo y de ancho.

    Al momento de querer personalizar pareciera que el datagridview no reconociera las columnas


    Jose Perdomo

    martes, 11 de junio de 2019 17:10

Todas las respuestas

  • Disculpen esto esta en visual basic 2010

    Jose Perdomo

    martes, 11 de junio de 2019 17:10
  • Hola buenas tardes, asi es que formateo mis colummnas en ese control, te coloco este jemplo:

     private void darformato()
            {
                //DGridAprobacion.Columns[0].Visible = false;
                //DGridAprobacion.Columns[1].Visible = true;
                DGridAprobacion.Columns[0].HeaderText = "N° Aprobación";
                DGridAprobacion.Columns[1].HeaderText = "Aprobador";
                DGridAprobacion.Columns[2].HeaderText = "Fecha y hora de aprobación";
                DGridAprobacion.Columns[3].HeaderText = "Chofer";
                DGridAprobacion.Columns[4].HeaderText = "Modelo";
                DGridAprobacion.Columns[5].HeaderText = "Marca";
                DGridAprobacion.Columns[6].HeaderText = "Vehículo";
                DGridAprobacion.Columns[7].HeaderText = "Observaciones";
                //DGridAprobacion.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            
            }

    revisa si la cantidad de columnas de tu query concuerda con la cantidad de columnas que intentas formatear.

    Saludos!

    • Propuesto como respuesta eRiver1 martes, 11 de junio de 2019 19:12
    martes, 11 de junio de 2019 17:22
  • si se estan cargando tres columnas, la 0, 1 y 2 para la personalizacion. pero este grid tiene una relacon a dos tablas, puede esto provocarme el error

    Jose Perdomo

    martes, 11 de junio de 2019 19:57
  • Al revisar paso a paso la rutina, se estaban cargando dos veces el datagridview y en la segunda carga pasaba la lista de las columnas vacias, verifique que solo cargara una sola vez y solucione el problema

    Jose Perdomo

    • Propuesto como respuesta eRiver1 martes, 11 de junio de 2019 22:06
    martes, 11 de junio de 2019 20:23
  • Hazlo todo dentro de un solo metodo. otro cosa que no entiendo del todo por que utilizas la misma consulta dos veces, exito muchocho

     Private Sub Header_Datagridview() ''MUESTRA LOS CAMPOS EN EL DATAGRID - LE DA ESTILO AL ENCABEZADO
            datagridlista.Columns(0).HeaderText = "Codigo"
            datagridlista.Columns(0).Width = 20
    
           ect...........
        End Sub


    viernes, 28 de junio de 2019 19:32