COMO CHAMAR FUNCAO DO MOUSE MOVE

MARSOLIM 03/01/2014 15:52:30
#432629
pessoal to usando o mousemove para mover elementos pela tela e como são vários elementos estou tentando colocar as linhas do mousemove em uma sub pra chamar ela ao invés de repetir tudo mas não está dando.

as linhas que estou usando no início e nos eventos move down e up são

    Private dragging As Boolean
Private beginX, beginY As Integer

Private Sub nomedocontrole_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles nomedocontrole.MouseMove
If dragging = True And Me.nomedocontrole.Left Then
nomedocontrole.Location = New Point(nomedocontrole.Location.X + e.X - beginX, nomedocontrole.Top)
Me.Refresh()
If nomedocontrole.Left >= Me.nomeoutrodocontrole.Left - 30 Then
dragging = False
nomedocontrole.Left = nomeoutrodocontrole.Left - 31
ElseIf nomedocontrole.Left <= Me.controle3.Left Then
dragging = False
Me.nomedocontrole.Left = Me.controle3.Left
End If
End If
End Sub

Private Sub nomedocontrole_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles nomedocontrole.MouseDown
dragging = True
beginX = e.X
[ô] beginY = e.Y
End Sub

Private Sub nomedocontrole_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles nomedocontrole.MouseUp
Me.controle3.SelectionIndent = Me.nomedocontrole.Left - Me.controle3.Left + (Me.nomedocontrole.Width / 2)
dragging = False
Me.Refresh()
End Sub


então criei a sub abaixo

   Private Sub Mover(ByVal nCtrl As Control, ByVal e As System.Windows.Forms.MouseEventArgs)
If dragging = True And Me.nCtrl.Left Then
nCtrl.Location = New Point(nCtrl.Location.X + e.X - beginX, nCtrl.Top)
Me.Refresh()
If nCtrl.Left >= Me.nomeoutrodocontrole.Left - 30 Then
dragging = False
nCtrl.Left = nomeoutrodocontrole.Left - 31
ElseIf nCtrl.Left <= Me.controle3.Left Then
dragging = False
Me.nCtrl.Left = Me.controle3.Left
End If
End If
End Sub


e tento chamar ela no mousemove de cada controle

Mover(Me.nomedocontrole)


o que tenho que alterar para essa budega funfar? agradeço desde agora.
MARSOLIM 12/01/2014 09:44:35
#432949
ainda não consegui por isso a funfar. tentei até alterar sub para function mas nada ainda. alguma ideia?
GUIMORAES 13/01/2014 09:06:42
#432968
Dim p as new panel

AddHandler p.MouseMove, AddressOf painel_MouseMove


[ô]Método MouseMove

Private Sub painel_MouseMove(sender As Object, e As EventArgs)
[ô]Evento do painel aqui
End Sub


Tenta ai
MARSOLIM 15/01/2014 19:48:30
#433113
agradeço pela atenção mas não tenho nenhum painel no formulário. por horas vou deixar isso.
GUIMORAES 16/01/2014 08:38:34
#433126
Dei exemplo de um painel, mas você pode aplicar a qualquer controle
MARSOLIM 22/01/2014 17:35:46
#433412
depois eu volto a ver isso. obrigado por enquanto.
Tópico encerrado , respostas não são mais permitidas