Usuário com melhor resposta
Criação de elementos

Pergunta
-
Olá galera, estou precisando de uma ajuda com um projeto que estou desenvolvendo.
Estou precisando fazer uma estrutura que segue na imagem abaixo:
Explicando a estrutura...
Bom, no canto direito da tela existe esse botão "CADASTRAR" que quando clicado abre uma nova janela para que o usuário cadastre o nome, tipo e categoria. Após o preenchimento o usuário clica no botão salvar e esses dados são salvos em uma nova linha de uma tabela do banco de dados (access).
Toda essa parte eu já criei e está funcionando, o que eu preciso vem agora:Após tudo isso, eu preciso que o "NOME" que foi cadastrado seja jogando em uma Label (representada no desenho por essas 7 bolas) só que essa Label não existe até o momento. Ela só será criada quando um novo cadastro for efetuado (se possível).
E eu preciso também colocar todas essas "Labels com os nomes", dentro de uma espécie de conteiner ou qualquer coisa que as abrigue, possibilitando quando houver mais de 7 Labels, que uma barra de rolagem na horizontal possa ser usada para que o usuário possa navegar por todas essas Labels
Será que alguem sabe quais recursos posso utilizar para fazer essas duas coisas??
Obrigado! João Pedro.
Respostas
-
A grosso modo, seguindo a idéia do Vitor, eu criaria Objetos Label em tempo de execução, e inserindo um pós outro neste Panel.
Um objeto Label não terá valores padrões, apenas receberá o valor do BD e irá inserir no Panel.
Exemplo:
Public WithEvents Lbl As New Label() Sub Inserir() Lbl = New Label() ''''''''''''''''''''''''''''''''''''''''''''''' ' INFORMAÇÕES DO LABEL ''''''''''''''''''''''''''''''''''''''''''''''' With Lbl .Name = "Label" .Text = "Texto do banco de dados" .Location = New System.Drawing.Point(50,50) .Size = New Size(30, 15) End With ''''''''''''''''''''''''''''''''''''''''''''''' ' ADICIONA O CONTROLE ''''''''''''''''''''''''''''''''''''''''''''''' Me.Panel1.Controls.Add(Lbl) ''''''''''''''''''''''''''''''''''''''''''''''' ' ADICIONA OS COMANDOS PARA O ITEM ''''''''''''''''''''''''''''''''''''''''''''''' AddHandler Lbl.MouseClick, AddressOf Lbl_Click End Sub
Claro que você terá de criar cálculos para obter o local dele (pós o outro inserido), e você pode incrementar mais essa função.
E para acessar depois o evento, você usa o método "sender", que ele terá as propriedades do objeto criado.
Qualquer dúvida, só postar!
Att
Alan- Marcado como Resposta Ricardo RussoModerator terça-feira, 15 de janeiro de 2013 13:19
Todas as Respostas
-
Oi.
Após tudo isso, eu preciso que o "NOME" que foi cadastrado seja jogando em uma Label (representada no desenho por essas 7 bolas) só que essa Label não existe até o momento. Ela só será criada quando um novo cadastro for efetuado (se possível).
Você já fez algo nessa parte?
Esse container pode ser um Panel com a propriedade AutoScroll = true, assim, barras de rolagem aparecem quando precisar.
-
A grosso modo, seguindo a idéia do Vitor, eu criaria Objetos Label em tempo de execução, e inserindo um pós outro neste Panel.
Um objeto Label não terá valores padrões, apenas receberá o valor do BD e irá inserir no Panel.
Exemplo:
Public WithEvents Lbl As New Label() Sub Inserir() Lbl = New Label() ''''''''''''''''''''''''''''''''''''''''''''''' ' INFORMAÇÕES DO LABEL ''''''''''''''''''''''''''''''''''''''''''''''' With Lbl .Name = "Label" .Text = "Texto do banco de dados" .Location = New System.Drawing.Point(50,50) .Size = New Size(30, 15) End With ''''''''''''''''''''''''''''''''''''''''''''''' ' ADICIONA O CONTROLE ''''''''''''''''''''''''''''''''''''''''''''''' Me.Panel1.Controls.Add(Lbl) ''''''''''''''''''''''''''''''''''''''''''''''' ' ADICIONA OS COMANDOS PARA O ITEM ''''''''''''''''''''''''''''''''''''''''''''''' AddHandler Lbl.MouseClick, AddressOf Lbl_Click End Sub
Claro que você terá de criar cálculos para obter o local dele (pós o outro inserido), e você pode incrementar mais essa função.
E para acessar depois o evento, você usa o método "sender", que ele terá as propriedades do objeto criado.
Qualquer dúvida, só postar!
Att
Alan- Marcado como Resposta Ricardo RussoModerator terça-feira, 15 de janeiro de 2013 13:19