Toon posts:

[VB] Drag Drop van een frame

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil runtime een frame over het scherm kunnen verplaatsen. Ik krijg het alleen niet voor elkaar.

Het mousedown event van het form werkt niet als ik op het frame klik.

En het Mouseup event van het frame niet als ik buiten het frame de muis weer los laat.

Heeft iemand misschien een stukje standaard code voor het over het scherm verplaatsen van een control.

Ik hoop dat ik niet zelf uren hierachter moet zitten terwijl iemand hoogstwaarschijnlijk de code zo heeft liggen.

Tnx

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Probeer het met Layers.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Kijk eens op www.pscode.com, daar staan een paar goede dingen. Je moest een of andere property instellen, iets als DragStyle = Auto, ofzo...

Verwijderd

www.dynamicdrive.com is ook een goeie.

Zie http://www.dynamicdrive.com/dynamicindex11/genericdrag.htm bijvoorbeeld.

Dit zou dus ook voor controls moeten werken, gewoon in een DIV zetten.

  • Dizzy
  • Registratie: September 2000
  • Laatst online: 19-08 20:17

Dizzy

Where am I?

Wat dacht je van het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static moving As Boolean
Static Fx As Single
Static Fy As Single
    If Button = 1 Then
      If moving Then
        Frame1.Move Fx + X, Fy + Y
        Fx = Frame1.Left
        Fy = Frame1.Top
      Else
        moving = True
        Fx = Frame1.Left - X
        Fy = Frame1.Top - Y
      End If
    Else
      moving = False
    End If
End Sub

Het nadeel van deze code is dat'ie de frame links boven aangrijpt, maar dit is even een quick-fix..

Steam Profile I5 14600K / 64 GB DDR5 / RTX 4090 / Rift S / HP Omen / Odyssey Neo G9 / Steam Deck OLED / Switch