Hej Spånar lite snabbt,tror att det beror på att du har en ram kring TextBoxen. Hej, Hej Här är nog ett bättre exempel : Fungerar ibland men inte alltid. Det boror på var trxtboxen är placerad från början tror jag. Så här fungerar det Ja, Jag ser det nu, det funkar bara om textboxen inte placeras längre till vänster om utgångsläget. OkFlytta en textbox i en form
Har ett litet problem när jag vill flytta en textbox på en form
Har satt DragMode till Automatic
problemet är att när jag släpper musknappen i den nya positionen så hamnar inte textboxen
exakt där jag vill utan sticker iväg lite grann åt något håll.
Detta beroende på var jag sätter markören i textboxen när jag börjar flyttningen
Har detta kommande när musen släpps
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End SubSv: Flytta en textbox i en form
Den räknas inte in i X och Y. testa att sätta Source.Move X - 30, Y - 30
Tänker snabbt skall kanske vara plus.Sv:Flytta en textbox i en form
Jag hade ett loknande problem med en label för ett tag sedan.
Tror det var Sven Pon som hjälpte mig.
<Code>
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReadyToMove = True
HorisontalPos = X
End Sub
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReadyToMove = False
Label1.Width = (HorisontalPos + X)
End Sub
</code>
fast du får ju byta ut width...
/martinSv: Flytta en textbox i en form
Har provat med något liknande men problemet var att jag fick ingen access till Mouse_down eventet
när boxen var satt till dragmode=Automatic
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
tmpY = X
tmpY = Y
End Sub
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - tmpX, Y - tmpY
End Sub
Det är så att övre vänstra hörnet på textboxen hamnar där jag sätter markören när jag börjar flytten.
Sätter jag den exakt i detta hörn så blir det riktigt, men så blir det ju aldrigSv:Flytta en textbox i en form
<code>
Private Sub Text1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
If x < Text1(Index).Left + Text1(Index).Width And x > Text1(Index).Left Then
MouseX = x
MouseY = y
End If
end sub
Private Sub Form_DragDrop(Source As Control, x As Single, y As Single)
Source.Top = y - MouseY
Source.Left = x - MouseX
end sub
</code>
/MartinSv: Flytta en textbox i en form
Problemet är att jag inte får markörens position när jag muspressar på textboxen
Det måste finnas en korrekt lösning på detta eftersom jag ser det i så många programSv:Flytta en textbox i en form
' If X < Text1.Left + Text1.Width And X > Text1.Left Then
tmpX = X
tmpY = Y
' End IfSv:Flytta en textbox i en form
Känn på det och använd + i stället om det är för långt till vänster.
Här fungerar det exakt.Sv:Flytta en textbox i en form
Jag har disablat första och sista raden
' If X < Text1.Left + Text1.Width And X > Text1.Left Then
tmpX = X
tmpY = Y
' End If