Jump to content

Criar caixa de texto movel com o rato em runtime


Seabra
 Share

Recommended Posts

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

Link to comment
Share on other sites

'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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 
Link to comment
Share on other sites

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.