Click here to Skip to main content
13,197,804 members (39,378 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


56 bookmarked
Posted 29 May 2009

Custom Windows Panel

, 15 Mar 2010
Rate this:
Please Sign up or sign in to vote.
Every control in this panel can change the size and move on the panel


I've downloaded some articles to use in my project for resizing and moving every control at runtime, but those aren't more efficient in my conditions. So I decided to make a custom panel to do that. It's useful for some projects such as report generator and more.

Using the Code

Canvas class is inherited from Panel control and in the OnControlAdded method of the panel, some events are used to handle moving controls.

Canvas has defined Tracker class to handle resizing the control on the panel.

Just drag and drop the custom panel (named Canvas) on the form and put some controls to test it.

public class Canvas : Panel
protected override void OnControlAdded(System.Windows.Forms.ControlEventArgs e)
if (e.Control is Tracker)

e.Control.MouseEnter += new EventHandler(Control_MouseEnter);
e.Control.MouseLeave += new EventHandler(Control_MouseLeave);
e.Control.MouseDown += new MouseEventHandler(Control_MouseDown);
e.Control.MouseMove += new MouseEventHandler(Control_MouseMove);
e.Control.MouseUp += new MouseEventHandler(Control_MouseUp);

e.Control.LocationChanged += new EventHandler(Control_LocationChanged);

e.Control.HandleDestroyed += new EventHandler(Control_HandleDestroyed);


  • 29th May, 2009: Initial post
  • 15th Mar, 2010: Updated source code


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


About the Author

Alireza Soleimani
Software Developer
Iran (Islamic Republic of) Iran (Islamic Republic of)
No Biography provided

You may also be interested in...

Comments and Discussions

SuggestionDoesn't work when scrolled off the screen Pin
MachineGun2-Nov-11 14:16
memberMachineGun2-Nov-11 14:16 
GeneralRe: Doesn't work when scrolled off the screen Pin
chrisbray2-Nov-11 19:59
memberchrisbray2-Nov-11 19:59 
GeneralRe: Doesn't work when scrolled off the screen Pin
MachineGun4-Nov-11 5:00
memberMachineGun4-Nov-11 5:00 
GeneralRe: Doesn't work when scrolled off the screen Pin
chrisbray4-Nov-11 5:18
memberchrisbray4-Nov-11 5:18 
GeneralRe: Doesn't work when scrolled off the screen Pin
MachineGun4-Nov-11 5:36
memberMachineGun4-Nov-11 5:36 
GeneralXml integration for object position and size Pin
sleekyworm26-Nov-10 21:58
membersleekyworm26-Nov-10 21:58 
GeneralHide Tracker Handles Pin
chrisbray24-Mar-10 13:44
memberchrisbray24-Mar-10 13:44 
GeneralRe: Hide Tracker Handles [modified] Pin
Alireza Soleimani26-Mar-10 19:05
memberAlireza Soleimani26-Mar-10 19:05 
GeneralRe: Hide Tracker Handles Pin
chrisbray26-Mar-10 23:43
memberchrisbray26-Mar-10 23:43 
GeneralRe: Hide Tracker Handles Pin
Alireza Soleimani28-Mar-10 11:03
memberAlireza Soleimani28-Mar-10 11:03 
GeneralRe: Hide Tracker Handles Pin
chrisbray28-Mar-10 22:03
memberchrisbray28-Mar-10 22:03 
GeneralRe: Hide Tracker Handles Pin
MachineGun2-Nov-11 14:17
memberMachineGun2-Nov-11 14:17 
GeneralRe: Hide Tracker Handles Pin
chrisbray2-Nov-11 19:52
memberchrisbray2-Nov-11 19:52 
QuestionCan't find Canvas in my toolbox???? Pin
sleezy27-Aug-09 13:44
membersleezy27-Aug-09 13:44 
GeneralGreat! (VS2008 Required) Pin
jp2code26-Aug-09 8:57
memberjp2code26-Aug-09 8:57 
GeneralMy vote of 1 Pin
snehalshahprit29-May-09 16:30
membersnehalshahprit29-May-09 16:30 

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
Web02 | 2.8.171020.1 | Last Updated 15 Mar 2010
Article Copyright 2009 by Alireza Soleimani
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid