COMO CHAMAR FUNCAO DO MOUSE MOVE
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
então criei a sub abaixo
e tento chamar ela no mousemove de cada controle
o que tenho que alterar para essa budega funfar? agradeço desde agora.
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.
ainda não consegui por isso a funfar. tentei até alterar sub para function mas nada ainda. alguma ideia?
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
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
agradeço pela atenção mas não tenho nenhum painel no formulário. por horas vou deixar isso.
Dei exemplo de um painel, mas você pode aplicar a qualquer controle
depois eu volto a ver isso. obrigado por enquanto.
Tópico encerrado , respostas não são mais permitidas