2010-11-29 10 views
2

Ich muss ein übergangsloses, aber einseitig bewegliches WinForms Formular erstellen. Ist es möglich?Captionless, aber bewegliche WinForms Form

Hier ist ein Beispiel von VB6-Anwendung, die ich Portierung bin (ich hinzugefügt Cursor in Paint :)):

alt text

+0

Ist Ihre Frage, wie das Formular zu bewegen, wenn Sie auf die Titelleiste versteckt haben? Wenn ja, was bedeutet "einseitig beweglich"? –

+0

Es bedeutet, dass die Form nur auf der oberen Seite beweglich ist (wo der Cursor gemalt ist) – SiberianGuy

Antwort

2

die keinen Formborderstyle = Set und dann benutzerdefinierten verwenden, um Ereignisse Mouseover und die Maus nach unten auf Ihrem Griff Bewegen oder schauen Sie in den SplitContainer.

0

Ok, hier gehen Sie, der folgende Code dafür sorgen wird, dass die Form nur vertikal bewegt werden kann:

public partial class FrmMain : Form { 
    Point mouse_offset; 

    private void FrmMain_MouseDown(object sender, MouseEventArgs e) { 
     mouse_offset = new Point(-e.X, -e.Y); 
    } 

    private void FrmMain_MouseMove(object sender, MouseEventArgs e) { 
     if (e.Button == MouseButtons.Left) { 
      Point mousePos = Control.MousePosition; 
      mousePos.Offset(0, mouse_offset.Y); 
      mousePos.X = this.Location.X; 
      this.Location = mousePos; 
     } 
    } 
}