vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Bild oder Panel frei in der Form bewgen 
Autor: ModeratorDieter (Moderator)
Datum: 15.09.08 11:44

Public Class Form1
  ' Maus-Koordinaten
  Dim nStartPos As Point
  Dim nDragPos As Point
 
  Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
    ' Position des Fensters und der Maus merken
    If e.Button = Windows.Forms.MouseButtons.Left Then
      nStartPos = PictureBox1.Location
      nDragPos = PictureBox1.PointToScreen(New Point(e.X, e.Y))
    End If
  End Sub
 
  Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
    If e.Button = Windows.Forms.MouseButtons.Left Then
      ' aktuelle Mausposition bezogen auf den Desktop
      Dim nCurPos As Point = PictureBox1.PointToScreen(New Point(e.X, e.Y))
 
      ' Fenster an neuen Position verschieben
      PictureBox1.Location = New Point(nStartPos.X + nCurPos.X - nDragPos.X, _
        nStartPos.Y + nCurPos.Y - nDragPos.Y)
    End If
  End Sub
End Class

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Bild 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bild oder Panel frei in der Form bewgen 
Autor: ModeratorDieter (Moderator)
Datum: 15.09.08 14:36

z.B. so:
  Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
    If e.Button = Windows.Forms.MouseButtons.Left Then
      ' aktuelle Mausposition bezogen auf den Desktop
      Dim nCurPos As Point = PictureBox1.PointToScreen(New Point(e.X, e.Y))
 
      ' Fenster an neuen Position verschieben
      Dim NewPos As New Point(nStartPos.X + nCurPos.X - nDragPos.X, _
        nStartPos.Y + nCurPos.Y - nDragPos.Y)
      If NewPos.X < 100 Then NewPos.X = 100
      If NewPos.Y < 50 Then NewPos.Y = 50
 
      PictureBox1.Location = NewPos
    End If
  End Sub

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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