none
vbasic: Como agregar check a datagridview RRS feed

  • Pregunta

  • Intento hacer un formulario de permisos, ya tengo el treeview con los menus, ahora necesito colcoar los datos de los usuarios y que se vea algo asi:

    Selecciono o marco el usuario y mostrar otra ventana donde especifique los permisos, asi valdiar si tal menu tiene asignado por el check o el que no tenga na estara unchecked.

    De preferencia con código no en modo diseño.

    Espero de su ayuda


    • Editado SUSPENDX2 lunes, 9 de diciembre de 2019 16:25
    lunes, 9 de diciembre de 2019 15:52

Respuestas

  • Hola:
    En un Form con 1 DataGridView, copia y pega el siguiente codigo

    Option Explicit On
    Option Strict Off
    Imports System.Data.SqlClient
    Public Class FrmCheck
        Private Sub FrmCheck_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Try
                Dim lsCadConexion As String = "Data Source=.\SQLEXPRESS;Initial Catalog=NorthWind;Integrated Security=True"
                Dim lsQuery As String = "SELECT EmployeeId, FirstName, LastName, City FROM Employees"
                Using loConexion As New SqlConnection(lsCadConexion)
                    Dim loDataAdapter As New SqlDataAdapter(lsQuery, loConexion)
                    Dim loDataTable As New DataTable
                    loDataAdapter.Fill(loDataTable)
                    '
                    Me.DataGridView1.DataSource = loDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Load", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            'AÑADIR columna checkbox
            lP_AddCheckColumn()
        End Sub
        Private Sub lP_AddCheckColumn()
            Dim column As New DataGridViewCheckBoxColumn()
            With column
                .HeaderText = "Check"
                .Name = "Check"
                .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
                .FlatStyle = FlatStyle.Standard
                .CellTemplate = New DataGridViewCheckBoxCell()
                .CellTemplate.Style.BackColor = Color.Beige
            End With
            'PRIMERA posicion
            DataGridView1.Columns.Insert(0, column)
        End Sub
    End Class

    El resultado es la siguiente imagen

    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta Diana AcuñaModerator lunes, 9 de diciembre de 2019 16:48
    • Marcado como respuesta SUSPENDX2 lunes, 9 de diciembre de 2019 21:49
    lunes, 9 de diciembre de 2019 16:43

Todas las respuestas

  • Hola:
    En un Form con 1 DataGridView, copia y pega el siguiente codigo

    Option Explicit On
    Option Strict Off
    Imports System.Data.SqlClient
    Public Class FrmCheck
        Private Sub FrmCheck_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Try
                Dim lsCadConexion As String = "Data Source=.\SQLEXPRESS;Initial Catalog=NorthWind;Integrated Security=True"
                Dim lsQuery As String = "SELECT EmployeeId, FirstName, LastName, City FROM Employees"
                Using loConexion As New SqlConnection(lsCadConexion)
                    Dim loDataAdapter As New SqlDataAdapter(lsQuery, loConexion)
                    Dim loDataTable As New DataTable
                    loDataAdapter.Fill(loDataTable)
                    '
                    Me.DataGridView1.DataSource = loDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Load", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
            'AÑADIR columna checkbox
            lP_AddCheckColumn()
        End Sub
        Private Sub lP_AddCheckColumn()
            Dim column As New DataGridViewCheckBoxColumn()
            With column
                .HeaderText = "Check"
                .Name = "Check"
                .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
                .FlatStyle = FlatStyle.Standard
                .CellTemplate = New DataGridViewCheckBoxCell()
                .CellTemplate.Style.BackColor = Color.Beige
            End With
            'PRIMERA posicion
            DataGridView1.Columns.Insert(0, column)
        End Sub
    End Class

    El resultado es la siguiente imagen

    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta Diana AcuñaModerator lunes, 9 de diciembre de 2019 16:48
    • Marcado como respuesta SUSPENDX2 lunes, 9 de diciembre de 2019 21:49
    lunes, 9 de diciembre de 2019 16:43
  • Ok, Listo si perfecto , y porque cuando le doy click no da check? 
    lunes, 9 de diciembre de 2019 19:16
  • Hola:
    > Ok, Listo si perfecto , y porque cuando le doy click no da check? <
    NO te entiendo lo que quieres decir.
    ¿Puedes explicarlo un poco?

    Un saludo desde Bilbo
    Carlos
    lunes, 9 de diciembre de 2019 19:39
  • me sale todo el tema pero cuando le doy click al check para ver el efecto este no sale nada sigue el cuadrito vacio. al marcar check me indica que he seleccionado esa fila, pero cuando doy click nada no esta la palomita.
    • Editado SUSPENDX2 lunes, 9 de diciembre de 2019 19:44
    lunes, 9 de diciembre de 2019 19:43
  • Faltaba esto:

     Private Sub dgvUsuarios_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvUsuarios.CellContentClick
            If e.ColumnIndex = Me.dgvUsuarios.Columns.Item("check").Index Then
                Dim chkCell As DataGridViewCheckBoxCell = Me.dgvUsuarios.Rows(e.RowIndex).Cells("check")
                chkCell.Value = Not chkCell.Value
            End If
        End Sub

    con eso ya sale el check

    lunes, 9 de diciembre de 2019 19:49
  • Hola:
    Tu pregunta es
    > vbasic: Como agregar check a datagridview <

    luego preguntas
    > Selecciono o marco el usuario y mostrar otra ventana donde especifique los permisos, asi valdiar si tal menu tiene asignado por el check o el que no tenga na estara unchecked. <
    Esa parte que pides, NO se puede responder porque faltan todos los datos de la estructura con la que cargas el datagridview.

    P.D.
    Cuando se hace una pregunta, hay que poner TODOS los datos para que la respuesta sea lo mas completa posible, porque sino hay que sacar la "bola de cristal"

    Un saludo desde Bilbo
    Carlos
    lunes, 9 de diciembre de 2019 20:07
  • Bueno Ok, es que si es check se entiende que debe marcar o desmarcar.

    ya viene la otra pregunta respecto a eso.

    Saludos y gracias

    lunes, 9 de diciembre de 2019 21:35