none
Como hacer un procedimiento que me controles los Eventos de dos Botones RRS feed

  • Debate general

  • Hola buenas Tardes:

    Les comento que estoy renegando con un control de flujo y no doy con la solución.

    Resulta que tengo en mi formulario dos botones que uno al darle click me debe seleccionar todos los cheks que tengo en una             lista y cuando presiono el otro boton se debe desmarcar todos los checks que estaban marcados.

      ItemCheckspero resulta que en CodeBegind he creado un procedimiento como este

        Private Sub Eventos()

            If btnCheckCausa.CanSelect = True AndAlso btnUnCheckCausa.CanSelect = False Then
                For Each Item As ListViewItem In LVMotivos.Items
                    Item.Checked = True
                Next
            End If

            If btnUnCheckCausa.CanSelect = True AndAlso btnCheckCausa.CanSelect = False Then
                For Each Item As ListViewItem In LVMotivos.Items
                    Item.Checked = False
                Next
            End If
        End Sub

    A Este procedimiento lo estoy llamando desde cada unos de los botones 

    Este boton deberia marcar todos los checks

        Private Sub btnCheckCausa_Click(sender As Object, e As EventArgs) Handles btnCheckCausa.Click
            Try
                Eventos()
            Catch ex As Exception
                MostrarError(ex)
            End Try
        End Sub
    Y este boton deberia desmarcar todos los checks
        Private Sub btnUnCheckCausa_Click(sender As Object, e As EventArgs) Handles btnUnCheckCausa.Click
            Try
                Eventos()
            Catch ex As Exception
                MostrarError(ex)
            End Try
        End Sub

     El problema està en el evento, si alguien pudiera decirme el error se lo agradeceria

    saludos cordiales


    Pablo Cesar Farias

    miércoles, 24 de febrero de 2016 20:17

Todas las respuestas

  • Cual es el error que te genera???

    intenta hacer lo siguiente

     Private Sub Eventos(marcar As Boolean)
    
              For Each Item As ListViewItem In LVMotivos.Items
                     Item.Checked = marcar
                 Next
      End Sub 
    
        Private Sub btnCheckCausa_Click(sender As Object, e As EventArgs) Handles btnCheckCausa.Click
             Try
                 Eventos(true)
             Catch ex As Exception
                 MostrarError(ex)
             End Try
         End Sub
    
         Private Sub btnUnCheckCausa_Click(sender As Object, e As EventArgs) Handles btnUnCheckCausa.Click
             Try
                 Eventos(false)
             Catch ex As Exception
                 MostrarError(ex)
             End Try
         End Sub 


    Att. Franklin Andino


    miércoles, 24 de febrero de 2016 20:42
  • Creo que tienes un error de concepto, para que estas usando la propiedad Canselect? esta propiedad sirve para ver si el boton es visible o es seleccionable para dar click. No va con el contexto. te sugiero que hagas lo siguiente:

      Private Sub btnCheckCausa_Click(sender As Object, e As EventArgs) Handles btnCheckCausa.Click
            ListView1.Items.OfType(Of ListViewItem).All(Function(c)
                                                            c.Checked = True
                                                            Return True
                                                        End Function)
        End Sub
    
        Private Sub btnUnCheckCausa_Click(sender As Object, e As EventArgs) Handles btnUnCheckCausa.Click
            ListView1.Items.OfType(Of ListViewItem).All(Function(c)
                                                            c.Checked = False
                                                            Return True
                                                        End Function)
        End Sub

    Asi funcionará utilizando Linq.

    Saludos.

    miércoles, 24 de febrero de 2016 23:11
  • Si la verdad es que estaba interpretando mal ese control del CantSelect igual gracias


    Pablo Cesar Farias

    jueves, 25 de febrero de 2016 12:46
  • Gracias por tu ayuda, no me había dado cuenta con esto he ahorrado un par de lineas de codigo

    Pablo Cesar Farias

    jueves, 25 de febrero de 2016 12:52