none
checkbox en datagridview RRS feed

  • Pregunta

  • Hola de nuevo por aca.... me queda una duda sobre los checkbox en una grilla...

    resulta que tngo un campo checkbox en la posicion 0 de la grilla

    y lo que quiero que al seleccionar un check no me deje seleccionar otro y me de un mensaje...

    viernes, 3 de septiembre de 2010 3:11

Respuestas

  • hola

    bien veo que ahs llegado a mostrar el mensaje, eso esta correcto, lo unico que falta es que la celda actual que lanza el evento la desmarques luego de mostrar el mensaje

     

    Dim marcado As Boolean = false

    For Each row As DataGridViewRow In DataGrisView1.Rows

        If CBool(row.Cells(0).Value) Them

            marcado = true

            Exit For

        End If

    Next

    If marcado Then

      MessageBox.Show("ya hay un item marcado")

      DataGridView1.Rows(e.RowIndex).Cells(0).Value = false

    End If

    la que marco en negrita es la fila que falta, o sea si se detecta que hay una marcada ya no permite marcar otra

    en realidad la marca pero muestra el cartel y la desmarca

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta rvargass viernes, 3 de septiembre de 2010 17:57
    viernes, 3 de septiembre de 2010 12:20

Todas las respuestas

  • hola

    [DataGridView] – Uso del CheckBox - DataGridViewCheckBoxColumn

    como veras en el articulo alli se detecta el cambio de seleccion del check

    es alli simplemente adaptando algo el codigo del articulo donde ante la seleccion recorres las filas de la grilla para validar si hay alguno ya marcado

    para recorrer las filas podrias usar

    Dim marcado As Boolean = false

    For Each row As DataGridViewRow In DataGrisView1.Rows

        If CBool(row.Cells(0).Value) Them

            marcado = true

            Exit For

        End If

    Next

    If marcado Then

      MessageBox.Show("ya hay un item marcado")

    End If

    lo unico que faltaria es que desmarques la seleccion actual

    bueno espero resulte de utilidad esta informacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 3 de septiembre de 2010 3:43
  • muchas gracias por la respuesta... pero resulta que no me ha resultado mucho el codigo ...

    porque al seleccionar al menos 1 check ya me muestra el mensaje de que ya hay seleccionado... lo que me gustaria saber es como lo hago

    al seleccionar mas de 1 check me muestre el mensaje que ya se ha seleccionado uno anteriormente... disculpe si no entendi su explicacion :D

    viernes, 3 de septiembre de 2010 8:55
  • Hazte un contador que cuente cuando se marca un check y cada vez que entres en la función del evento pregutnas si el contador es mayor de 1, si es así lanzas el MsgBox
    viernes, 3 de septiembre de 2010 11:12
  • hola

    bien veo que ahs llegado a mostrar el mensaje, eso esta correcto, lo unico que falta es que la celda actual que lanza el evento la desmarques luego de mostrar el mensaje

     

    Dim marcado As Boolean = false

    For Each row As DataGridViewRow In DataGrisView1.Rows

        If CBool(row.Cells(0).Value) Them

            marcado = true

            Exit For

        End If

    Next

    If marcado Then

      MessageBox.Show("ya hay un item marcado")

      DataGridView1.Rows(e.RowIndex).Cells(0).Value = false

    End If

    la que marco en negrita es la fila que falta, o sea si se detecta que hay una marcada ya no permite marcar otra

    en realidad la marca pero muestra el cartel y la desmarca

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta rvargass viernes, 3 de septiembre de 2010 17:57
    viernes, 3 de septiembre de 2010 12:20
  • muchas gracias por su respuesta me ha sido de gran utilidad, despues de un dia me logre dar cuenta q tenia un error pequeño :=D

    muchas gracias de nuevo...

    viernes, 3 de septiembre de 2010 18:03