| |
VB.NET - Ein- und UmsteigerBild oder Panel frei in der Form bewegen | | | Autor: ghtdaniel | Datum: 15.09.08 11:19 |
| Hallo,
ich möchte gerne ein Bild in einer Form bewegen. Also wenn ich mit der Maus auf das Bild klicke bzw. die Maus gedrückt halte, das sich das Bild frei auf der Form bewegt. Ich hoffe jemand von euch kann mir einen Ansatz oder so geben, wie ich das Problem beheben kann. Vielen Dank schonmal.
MFG | |
Re: Bild oder Panel frei in der Form bewgen | | | Autor: ghtdaniel | Datum: 15.09.08 13:32 |
| Vielen Dank, dass klappt super. Wie fange ich denn nun ab, dass das Bild nur bis zu einem bestimmten Punkt auf der Form bewegt werden kann. Bsp. Habe ein Viereck als Bild, in diesem Viereck ist ein Kreis als Bild und der Kreis soll sich nur in dem Viereck bewegen können.
MFG | |
Re: Bild oder Panel frei in der Form bewegen | | | Autor: ghtdaniel | Datum: 17.09.08 10:35 |
| Ist es auch möglich, dass wenn ich mehrere Images habe, die obige Funktion zu nehmen und auf alle anzuwenden. Ich habe es schon mit einer Variable probiert, aber iwie bekomme ich das nicht so ganz auf die Reihe??!!??!!
MFG | |
Re: Bild oder Panel frei in der Form bewegen | | | Autor: GPM | Datum: 17.09.08 16:48 |
| Hier sind 10 Controls verschiebbar und werden im nächsten Feld abgelegt.
Public Class Form1
Private mpos As Point
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim rnd As New Random
For i As Int32 = 1 To 10
Dim Pb As New PictureBox
Pb.Name = "Pb" & i.ToString
Pb.Image = SystemIcons.Error.ToBitmap
Pb.Cursor = Cursors.Hand
Pb.SetBounds(rnd.Next(8) * 32, rnd.Next(8) * 32, 32, 32)
AddHandler Pb.MouseDown, AddressOf Pb_MouseDown
AddHandler Pb.MouseMove, AddressOf Pb_MouseMove
AddHandler Pb.MouseUp, AddressOf Pb_MouseUp
Me.Controls.Add(Pb)
Next
End Sub
Private Sub Pb_MouseUp(ByVal Sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs)
Dim p As Control = DirectCast(Sender, Control)
p.Left = 32 * ((16 + p.Left) \ 32)
p.Top = 32 * ((16 + p.Top) \ 32)
Windows.Forms.Cursor.Clip = Nothing
End Sub
Private Sub Pb_MouseDown(ByVal Sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs)
Windows.Forms.Cursor.Clip = RectangleToScreen(Me.ClientRectangle)
mpos = e.Location
Me.Text = DirectCast(Sender, Control).Name
End Sub
Private Sub Pb_MouseMove(ByVal Sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim c As Control = DirectCast(Sender, Control)
c.Location = New Point(c.Left + e.X - mpos.X, c.Top + e.Y - mpos.Y)
c.BringToFront()
End If
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles Me.Paint
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
For y As Int32 = 0 To Me.Height Step 32
For x As Int32 = 0 To Me.Width Step 32
e.Graphics.DrawEllipse(Pens.Silver, x, y, 32, 32)
Next
Next
End Sub
End Class MfG GPM 0 | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|