Feedback

C# - Windows-Forms Panel frei positioniereren

Veröffentlicht von am 30.11.2007
(1 Bewertungen)
Mit folgendem Codeschnippsel kann man ein Panel frei auf der Windows Form bewegen. Es wird nicht überprüft ob das Panel über den Rand der Form geht!
GFU-Schulungen  [Anzeige]

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

Point position = new Point();
panel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel_MouseMove);

private void panel_MouseMove( object sender, MouseEventArgs e )
{
    Panel p = sender as Panel;
    
    if ( e.Button == MouseButtons.Left )
    {
        Point mousePos = this.PointToClient( Control.MousePosition );
        if ( position.IsEmpty )
            position = new Point( mousePos.X - p.Left, mousePos.Y - p.Top );
        
        p.Location = new Point( mousePos.X - position.X, mousePos.Y - position.Y );
    }            
    else if ( !position.IsEmpty )
        position = new Point();
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!