Ir para conteúdo
Fórum Script Brasil
  • 0

Mover Formulário Sem Borda


kuroi

Pergunta

codigo pra mover o Form clicando em qualquer parte dele e arrastando.

a mesma logica vale pra mover objetos dentro do formulario.

Em C#:

primeiro defina a struct:

public struct MoveForm
    {
        public int X;
        public int Y;
    }[/code] agora dentro da sua classe do formulario:
[code]MoveForm mv = new MoveForm();
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left) return;
            mv.X = this.Left - MousePosition.X;
            mv.Y = this.Top - MousePosition.Y;
        }
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left) return;
            this.Left = mv.X + MousePosition.X;
            this.Top = mv.Y + MousePosition.Y;
        }
Em VB.NET: primeiro defina a estrutura:
Structure MoveForm
    Dim X As Integer
    Dim Y As Integer
End Structure[/code] agora dentro da sua classe do formulario:
[code]Dim mv As MoveForm
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub
        mv.X = Me.Left - MousePosition.X
        mv.Y = Me.Top - MousePosition.Y
    End Sub
    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub
        Me.Left = mv.X + MousePosition.X
        Me.Top = mv.Y + MousePosition.Y
    End Sub

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Utilizando a dica do Graymalkin :

Imports System.Drawing

Public Class Form1
    Dim Ponto As New Point

    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown

        If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub

        Ponto.X = Me.Left - MousePosition.X
        Ponto.Y = Me.Top - MousePosition.Y

    End Sub

    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

        If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub

        Me.Left = Ponto.X + MousePosition.X
        Me.Top = Ponto.Y + MousePosition.Y

    End Sub
End Class

Legal.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...