Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola,
estou criando um controle em tempo de execução com base em um outro controle já existente no formulário, entretanto quando tento excluir o controle criado dinamicamente dá erro.
como faço para sanar este erro.
só para vcs entenderem melhor tenho uma lista de atletas que é lida através da seleção em um banco de dados, e os nomes são exibidos em campos texto em forma de lista.
os campos são criados de acordo com o número de atletas, que pode ser de 1 a 20 dependendo da modalidade.
só que quando eu tento alterar a modalidade dá erro, pois ele descarrega o controle texto primeiro para depois criar novamente o número de controles necessários.
Obrigado.
>
Você não precisa descarregar, apenas limpe a lista. Primeiro você busca o numero de resultados que foi obtido, depois monta todas as caixas de texto necessárias, isso você já fez, quando você mudar a modalidade a unica coisa que você precisa fazer é usar um For Each para contar todas as caixas de textos, se o numero for menor que o numero de resultados ele adiciona mais, se for maior ele retira as caixas de texto, depois você limpa todas no mesmo for each.
Se bem que o gridView é muito mais fácil para fazer isto.
Ola.
o caso é que em algumas circuntâncias eu não terei nenhum campo texto, uso o seguinte código para criar controles textbox em tempo de execução. onde x é o index do controle pois poderá ser criado até 20 controles textbox
Load Text1(x)
Text1(x).Top = Text1(x - 1).Top + 285
Text1(x).Left = 60
Text1(x).BackColor = xcolarx
Text1(x).Text = tbcadastro!idcod
Text1(x).Visible = True
If tbcadastro!suspenso = True Then
Text1(x).Enabled = False
Text1(x).BackColor = vbRed
Text1(x).ForeColor = vbWhite
Else
Text1(x).Enabled = True
Text1(x).BackColor = xcolarx
Text1(x).ForeColor = vbBlack
End If
depois uso o codigo abaixo para excluir os controles
For x = 1 To (numerojogadores1 - 1)
Unload Text1(x)
Unload Text2(x)
Unload Text3(x)
Unload Text4(x)
Unload Text5(x)
Next x
o problema é que quando tento limpar através de um click de um combobox ele dá erro 365 "unable to unlioad with this context". porém se eu criar um botão com a rotina acima ele a executa sem erro, entretanto se eu chamo a rotina "command3_click" através do click no combo, ela volta a dar erro.
alquem poderia me auxiliar neste problema.
Obrigado.
Cara, você já postou essa dúvida, tente se ater ao mesmo tópico, evitando de criar multiplas postagens para o mesmo problema.
o problema está no combobox que não executa esta rotina, criei um timer para executa-la.
Você não precisa descarregar, apenas limpe a lista. Primeiro você busca o numero de resultados que foi obtido, depois monta todas as caixas de texto necessárias, isso você já fez, quando você mudar a modalidade a unica coisa que você precisa fazer é usar um For Each para contar todas as caixas de textos, se o numero for menor que o numero de resultados ele adiciona mais, se for maior ele retira as caixas de texto, depois você limpa todas no mesmo for each.
Se bem que o gridView é muito mais fácil para fazer isto.