• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zephirus

colocar labels numa form e mudar o nome de todas

6 mensagens neste tópico

Olá,

o título não está muito explícito. Passo a explicar a minha dúvida.

Eu tenho uma form onde vou ter para cima de 250 labels e quero alterar o texto de cada uma através do meu código. Para tal, queria que cada label tivesse o mesmo nome seguido de um número (como se fosse um index).

Por exemplo:

tit1, tit2, tit3, .... até tit250

Depois crio uma lista com estes labels todos para poder chamar os labels que quero através de indexs.

A minha questão mesmo é: como posso mudar o nome dos labels em design time? Tem de ser à mão, um a um?

E a criação da lista? Também tenho de ter 250 linhas de código tipo:

Public intlist1 As List(Of Label) = New List(Of Label)

intlist1.Add(int1)
intlist1.Add(int2)
intlist1.Add(int3)
...
...
intlist1.Add(int250)

?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando a criação da lista podes ter um ciclo for e ir adicionando a lista. com poucas linhas de codigo fazes a lista.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não podes criar as labels em runtime ? Seria mais facil para atribuires os IDs da forma como queres automaticamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando a criação da lista podes ter um ciclo for e ir adicionando a lista. com poucas linhas de codigo fazes a lista.

Como? Isto não funciona:

For i As Integer = 1 to 10

  intlist1.Add("int" & i)

Next i

Não sei se me fiz entender.

Não podes criar as labels em runtime ? Seria mais facil para atribuires os IDs da forma como queres automaticamente.

Poderia criá-as em runtime sim. Como posso fazer isso? De qualquer forma, era preferível em design time...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes fazer assim para adicionar uma label. Podes criar um ciclo e no ID fazes por exemplo lbl.ID = "xpto" + i

Dim lbl as Label = new Label
lbl.ID = "xpto1"
lbl.Text = "Texto Label1"
lbl.Size = new Size(150,20)
lbl.Location = new Point(30, 20)

'por fim, adicionar ao form
Me.Controls.Add(lbl)

Se quiseres criar em design-mode terás que dps mudar os nomes à pata ou pegas no .designer.vb e substituis lá de uma forma mais automatica)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado Tiago. Se calhar vou mesmo fazer "à pata" no .designer.vb pois quero que fique já tudo acessível em design mode. De qualquer forma, o código que aqui colocaste vai-me dar imenso jeito para outras coisas.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora