Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Osvaldo1br

verificar se CheckBox, criado em runtime, esta selecionado e executar

Recommended Posts

Estou fazendo um aplicativo que pega os nome em uma tabela na DB e gera CheckBox para cada um destes valores e ao clicar em um botão ele verifica quais checkbox estão selecionados e gera uma ação diferente para cada um deles, porem não estou conseguindo fazer essa verificação.

 

** tente fazer das seguintes formas, mais sem sucesso:

 

                   For i As Integer = 0 To conexao.contagem
                   If "CB" + Trim(Str(i)) + ".Checked"  = True Then
                         '........ ação ........'       
                   End If
               Next i

** Da o seguinte erro: A Conversão da seqüência de caracteres 'CB0.Checked no tipo 'Boolean' não e válida.**

 

Segue a função que cria o CheckBox

 

    Public Sub criarcheckbox(nome As String, atalho As String, x As Integer, y As Integer)
       Dim CBAtalho As CheckBox = New CheckBox
       CBAtalho.Location = New Point(x, y)
       CBAtalho.Size = New Size(150, 20)
       CBAtalho.Text = atalho
       CBAtalho.Name = nome
       CBAtalho.Cursor = System.Windows.Forms.Cursors.Hand
       CBAtalho.Font = New System.Drawing.Font("Tahoma", 9.0F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)
       Form1.Panel2.Controls.Add(CBAtalho)
   End Sub

 

Segue a função que gera os CheckBox

 

    Dim ini As New Ini
   Dim patch As New Caminho
   Dim caminho As String = patch.path
   Public savepatch As New List(Of String)
   Public contagem As Integer


Public Sub gerarcb()

       Dim conexaoFB As FbConnection
       Dim da As FbDataAdapter
       Dim ds As New DataSet
       Dim tb1 As CCheckbox = New CCheckbox
       Dim x, y, linha, qlinha As Integer
       Dim savepatch As New List(Of String)
       qlinha = Int(ini.lerINI(caminho, "Quantidade de Linhas", "qlinha"))
       linha = qlinha - 1
       x = 2
       y = Form1.CBSt.Height - 3
       savepatch.Clear()
       conexaoFB = New FbConnection(strCon)
       conexaoFB.Open()
       da = New FbDataAdapter("b", conexaoFB)
       Try
           da.Fill(ds, "a")
           contagem = ds.Tables("a").Rows.Count - 1
           For i As Integer = 0 To contagem
               tb1.criarcheckbox("CB" + trim(Str(i)), ds.Tables("a").Rows(i).Item(0), x, y)
               savepatch.Add(ds.Tables("a").Rows(i).Item(1))
               y = y + 16
               If linha = i Then
                   linha = linha + qlinha
                   x = x + 150
                   y = 0
               End If
           Next i
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub

 

Toda vez que o FOR da loop ele cria um CheckBox e atribui um nome para ele de acordo com o índice do loop ex: CB0, CB1, CB2, CB3, CB4.

 

Obs.:

 

"b" - SQL Script

"a" - Tabela

Estou utilizando o VB.NET 2010

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, da forma que você está fazendo não vai dar certo.

 

Tenta em vez de criar vários checkbox criar um cheboxlist e dentro dele incluir os checkbox.

 

Ai depois você faz um foreach dos elementos do cheboxlist e vai verificando um por um se está checado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Flach,

 

Tente evitar postar em posts antigos a mais de 1 mês, pois provavelmente esse problema já foi solucionado.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.