Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Seabra

Criar caixa de texto movel com o rato em runtime

Mensagens Recomendadas

Seabra

Necessitava de criar uma TextBox associada a um Label e que, em runtime, quando eu a mover com o rato ela se mova juntamente com o Label e que pertença a um Array para que eu possa criar vários conjuntos.

Alguém tem ideia como posso fazer isso?

Desde já obrigado a quem se disponibilizar a ajudar.

Cump

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

Agradeço a uma alma que me possa dar uma ajuda  ;).

No fundo o que pretendo é criar em runtime várias caixas de texto e movelas com o rato.

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock
'Declaração das variáveis;
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2

Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Left Then
            TextBox1.Capture = False
            Dim msg As Message = _
                Message.Create(TextBox1.Handle, WM_NCLBUTTONDOWN, _
                    New IntPtr(HTCAPTION), IntPtr.Zero)
            Me.DefWndProc(msg)
        End If
    End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

bioshock Obrigado pela tua ajuda.

Já testei, funciona e era mesmo isto.

Já agora, e para criar mais TextBoxs iguais a esta em Run-time e poder também movelos para a posição que eu quiser?

Tem que ter um index.

Seabra

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Mover para a posição que quiseres? Sem ser pelo rato?

Se tens várias Textboxs e queres fazer o mesmo com todas, fazes um ciclo For Each.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

Imagina que  tenho uma form com o mapa da cidade no fundo.

Em runtime clico numa tecla que vai adicionar  uma Textbox e movo-a para uma zona do mapa clico na mesma tecla e cria-me outra textbox e movo-a para outro ponto.

Cada textbox vai mostrar um valor que está num array pela ordem que são criadas.

Será necessário também um botão para apagar a ultima textbox, caso se pretenda.

Cumprimentos

Seabra

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Tens de procurar por loops e aprender um pouco deles.

Deixo-te aqui um exemplo, é algo robusto, não sei se funciona na totalidade, agora não tenho oportunidade de testar, mesmo que esteja mal, deve-te dar uma ideia.

'Declaras as variáveis;
Dim novaText As New Textbox
Dim i As Integer

'Preenches as propriedades da nova Textbox;
With novaText
            .Text = "oie"
            .Location = New Point(+20, +3)
            .Size = New Size(75, 23)
        End With

'Fazes este ciclo no botão;
For i = 0 To 10
Me.Controls.Add(novaText)
Next 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

Tentei correr este código mas não funciona. Deve faltar qualquer coisa que eu não consigo perceber.

Clico no botão e não aparece nenhuma caixa de texto, nem dá qualquer erro.

Se poderes testar, ou alguém com mais experiência que eu o possa fazer  agradeço.

bioshock mais uma vez obrigado pela tua colaboração.

Seabra

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Por acaso comigo funcionou. Mas não adiciona mais do que uma Textbox..

Tenta procurar no google por "Creating multiples buttons vb.net" ou algo do género e depois adaptas às textboxs.

Ou procura mesmo por: "Me.controls.add vb.net".

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.