Click here to Skip to main content
13,355,726 members (63,168 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


7 bookmarked
Posted 31 May 2010

Dragging a Borderless Form

, 12 Jun 2010
Rate this:
Please Sign up or sign in to vote.
A code snippet which makes a borderless form draggable.
I was looking through some old C# projects on my external hard drive, when I stumbled upon the following code snippet, which makes a borderless form draggable.

protected override void WndProc(ref Message m)
    if (m.Msg == 163 && this.ClientRectangle.Contains(this.PointToClient(new Point(m.LParam.ToInt32()))) && m.WParam.ToInt32() == 2)
        m.WParam = (IntPtr)1;
    base.WndProc(ref m);
    if (m.Msg == 132 && m.Result.ToInt32() == 1)
        m.Result = (IntPtr)2;

This makes the form draggable by clicking and dragging anywhere on the form itself (that is, not on controls unless they are disabled).


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Kristian Sixhoej
Denmark Denmark

New biography coming sometime.
Green Alien | [Alien]

You may also be interested in...

Comments and Discussions

QuestionContainers? Pin
HiMik20031-Jun-10 0:08
memberHiMik20031-Jun-10 0:08 
AnswerRe: Containers? Pin
Kristian Sixhoej1-Jun-10 0:12
memberKristian Sixhoej1-Jun-10 0:12 
GeneralRe: Containers? Pin
HiMik20031-Jun-10 0:32
memberHiMik20031-Jun-10 0:32 
GeneralRe: Containers? Pin
Kristian Sixhoej1-Jun-10 0:37
memberKristian Sixhoej1-Jun-10 0:37 
GeneralRe: Containers? Pin
HiMik20031-Jun-10 0:44
memberHiMik20031-Jun-10 0:44 
GeneralRe: Containers? Pin
Kristian Sixhoej1-Jun-10 0:59
memberKristian Sixhoej1-Jun-10 0:59 
I found one.. Here you go:

int formStartX, formStartY, dragStartX, dragStartY;

private void progressBar1_MouseDown(object sender, MouseEventArgs e)
    if (e.Button == MouseButtons.Left)
        formStartX = this.Left;
        formStartY = this.Top;
        dragStartX = formStartX + e.X;
        dragStartY = formStartY + e.Y;

private void progressBar1_MouseMove(object sender, MouseEventArgs e)
    if (e.Button == MouseButtons.Left)
        this.Left = formStartX + ((this.Left + e.X) - dragStartX);
        this.Top = formStartY + ((this.Top + e.Y) - dragStartY);

Hope you'll find it useful Smile | :)
Green Alien | [Alien] Kristian Sixhoej
I have noticed even people who claim everything is predestined,
and that we can do nothing to change it, look before they cross the road.
- Stephen Hawking

GeneralRe: Containers? Pin
HiMik20031-Jun-10 1:39
memberHiMik20031-Jun-10 1:39 
AnswerRe: Containers? Pin
KPEBEDKO13-Jul-10 4:27
memberKPEBEDKO13-Jul-10 4:27 
GeneralRe: Containers? Pin
HiMik200315-Jul-10 4:40
memberHiMik200315-Jul-10 4:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.180111.1 | Last Updated 12 Jun 2010
Article Copyright 2010 by Kristian Sixhoej
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid