Form re-sizing at runtime
Here I am trying to present you how to re-size the form at runtime with re-size of all controls. Once you place a control on the form, you can adjust its position, size, and other design-time properties. There are situations, when you have to allow a user of your application to re-size the form.Then controls never get bigger and smaller when you re-size the form. Here I am trying to understand how to do this!!
For re-sizing the Form at runtime with all controls get increased or decreased according to user re-sizing the form.
For this, We have to declare these
private int xBefore = 0;
private int yBefore = 0;
private int widthBefore = 0;
private int heightBefore = 0;
private const int WM_SETREDRAW = 0xB;
public static extern int SendMessage(IntPtr hWnd, int Msg,
int wParam, int lParam);
Use the namespace
Form have got two events ResizeBegin, ResizeEnd
My Form's name is frmReceivedFCRegister
Write these code in form_ ResizeBegin
private void frmReceivedFCRegister_ResizeBegin(object sender, EventArgs e)
xBefore = this.Left;
yBefore = this.Top;
heightBefore = this.Height;
widthBefore = this.Width;
Then Write these code in form_ ResizeEnd
private void frmReceivedFCRegister_ResizeEnd(object sender, EventArgs e)
float WidthPerscpective = (float)Width / widthBefore;
float HeightPerscpective = (float)Height / heightBefore;
ResizeAllControls(this, WidthPerscpective, HeightPerscpective);
For that We have to write a function
private void ResizeAllControls(Control recussiveControl, float WidthPerscpective, float HeightPerscpective)
foreach (Control control in recussiveControl.Controls)
if (control.Controls.Count != 0)
SendMessage(this.Handle, WM_SETREDRAW, 0, 0);
ResizeAllControls(control, WidthPerscpective, HeightPerscpective);
SendMessage(this.Handle, WM_SETREDRAW, 1, 0);
control.Left = (int)(control.Left * WidthPerscpective);
control.Top = (int)(control.Top * HeightPerscpective);
control.Width = (int)(control.Width * WidthPerscpective);
control.Height = (int)(control.Height * HeightPerscpective);
And set form Borderstyle is 'sizable'
Just re-size the form n enjoy !!
Nice Article Brother.......