Ir para conteúdo

Arquivado

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

Tiago_BB

[Resolvido] Posicionar objetos via código

Recommended Posts

Ola pessoal.

 

Estou com uma dúvida.

 

Tenho labels e txts no meu design... como faço pra alterar o posicionamento dos mesmos via código no vb.net?

 

Não tem nenhuma propriedade.

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como?

 

O que acontece no meu caso... tenho dois txts e um botão consulta... dependendo de como o usuario se logar, devo esconder o segundo txt e posicionar o botão ao lado do primeiro txt.

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra falar a verdade não tem muito código.

 

É uma implementação que estou fazendo.

 

Como comentado anteriormente tenho dois textbox um no lado do outro e um botão consulta.

 

Caso o usuário que se logue seja do chile por exemplo, tenho que ocultar o segundo textbox, com isso , porém, ao efetuar um .Visible = False, fica um espaço estre o primeiro textbox e o botão... tenho que fazer com que o botão fique ao lado do primeiro textbox.

 

Caso o usuario não seja do chile, fica normal, ou seja, os dois textbox e o botão.

 

Espero ter sido claro, estou pesquisando mais não acho nada referente a atribuir a localização de um controle no vb.net.

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui.

 

Fiz da seguinte forma:

 

txtTexto.Style("Left") = "196"

 

Porém tenho uma outra dúvida.

 

No meu caso, não posso colocar tal valor fixo. Tenho uma outra caixa de texto (txtAnterior), colocando 196 fica certinho do lado da mesma (txtAnterior), porém, preciso fazer com que não seja fixo, pois o tamanho do meu txtAnterior pode ser dinâmico, entaum tenho que fazer de uma forma que o txtTExto, se ajuste automaticamente.

 

Tem como eu fazer algo como:

 

txtTexto.Style("Left") = (txtAnterior.style("Left") + txtAnterior.Width) + 8

 

Mais da erro.

 

Alguem tem uma sugestão?

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

txtTexto.Style("Left") = "196";

Do jeito q você fez funcionou?

 

por que o certo seria assim?

txtTexto.Style.Add("left", "196px");
Agora pegar o valor de classe style é dificil.

Acho que o ideial pra você é fazer algo do tipo, um if else, condição 1 aplica um style, condição 2 aplica outro style.

if(condição 1){
txtTexto.Style.Add("left", "200px");
txtAnterior.Style.Add("left", "200px");
}
else
{
txtTexto.Style.Add("left", "180px");
txtAnterior.Style.Add("left", "200px");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou.

 

Uma dúvida referente ao trecho de código citado:

 

txtTexto.Style.Add("left", "200px");
txtAnterior.Style.Add("left", "200px");

Esta colocando o posicionamento fixo... o que acontece no meu caso? O meu primeiro txt tem um left =112 e width de 72, o meu segundo, que eu tinha colocado fixo ficou left = 190, ficou certinho. Porém pode acontecer de o promeiro txt ser aumentado de tamanho, aumentando o width dele, com isso, se eu deixar fixo o segundo, o primeiro vai sobrepor o outro.

 

Estava pensando em de alguma for pegar o valor do left do primeiro txt, somar com o width, pra mim ter um valor real do controle.

 

 

O que você acha?

 

obrigado pelo interesse.

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou.

 

Uma dúvida referente ao trecho de código citado:

 

txtTexto.Style.Add("left", "200px");

txtAnterior.Style.Add("left", "200px");

 

Esta colocando o posicionamento fixo... o que acontece no meu caso? O meu primeiro txt tem um left =112 e width de 72, o meu segundo, que eu tinha colocado fixo ficou left = 190, ficou certinho. Porém pode acontecer de o promeiro txt ser aumentado de tamanho, aumentando o width dele, com isso, se eu deixar fixo o segundo, o primeiro vai sobrepor o outro.

 

Estava pensando em de alguma for pegar o valor do left do primeiro txt, somar com o width, pra mim ter um valor real do controle.

 

 

O que você acha?

 

obrigado pelo interesse.

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta seu código inteiro de como tá até o momento, pq eu não entendi o por que o primeiro txt tem tem que ter um valor no left.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem código pra mostrar.

 

As únicas linhas de códigos que fiz foram essas até agora:

 

If Not IsPostBack Then
If LinguaUsu = "Chile" Then
                txtSerieDe.Visible = False
                txtSerieAte.Visible = False
                Label4.Visible = False
                Label5.Visible = False

                lblA.Style.Add("left", "190px")
                txtNotaAte.Style.Add("left", "200px")
                btnConsNotas.Style.Add("left", "280px")

            End If

End If

Tenho que fazer com que os controles lblA, txtNotaAte e btnConsNotas ficam um do lado do outro, pois escondi os txt citados acima. do jeito que coloquei acima funcionou, porém deixei valores fixos ( 190, 200 e 280 )... e o pode acontecer de aumentar o width dos txts, com isso se eu deixar fixo vai ficar tudo embaraçhado.

 

Espero ter sido clar.

 

Qualquer dúvida a disposição.

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém pode me dizer se existe algo do tipo GetAttibute ??

 

Para que eu possa pegar o valor do LEFT de um determinado controle?

 

Atte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara a melhor forma é usando CSS.

Exemplo:

.p1 { definições }
.p1 { definições }

no seu codigo cs
If LinguaUsu = "Chile" Then
  seuControle.Attributes.Add("class", "p1")
Else
  seuControle.Attributes.Add("class", "p1")
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

css

.p1 { width: 200px; }
.p2 { width: 150px; }

.p3 { width: 250px; }
.p4 { width: 220px; }

aspx

<div id="teste" runat="server" >
 <asp:TextBox ...>
 <asp:TextBox ...>
</div>
<div id="teste1" runat="server" >
 <asp:TextBox ...>
 <asp:TextBox ...>
</div>

aspx.vb

If LinguaUsu = "Chile" Then
  teste.Attributes.Add("class", "p1")
  teste1.Attributes.Add("class", "p2")
Else
  teste.Attributes.Add("class", "p3")
  teste1.Attributes.Add("class", "p4")
End If

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.