using System; using System.Drawing; using System.Windows.Forms; public class ControlDynamicSizeLocation : Form { private Button btnShow = new Button(); private Label lbl = new Label(); int xButtonSize, yButtonSize; public ControlDynamicSizeLocation() { btnShow.Parent = this; btnShow.Text = "Show Button Properties"; Size = new Size(400,400); xButtonSize = (int)(Font.Height * .75) * btnShow.Text.Length; yButtonSize = Font.Height * 2; btnShow.Size = new Size(xButtonSize, yButtonSize); btnShow.Click += new System.EventHandler(btnShow_Click); lbl.Text = "Control Size and Location - Dynamic"; lbl.AutoSize = true; lbl.Parent = this; OnResize(EventArgs.Empty); } protected override void OnResize(EventArgs e) { base.OnResize(e); int xPosition = (int)(this.ClientSize.Width / 2) - (int)(xButtonSize / 2); int yPosition = (int)(this.ClientSize.Height / 2) - (int)(yButtonSize / 2); btnShow.Location = new Point(xPosition, yPosition); } static void Main() { Application.Run(new ControlDynamicSizeLocation()); } private void btnShow_Click(object sender, EventArgs e) { Console.WriteLine("Button Bottom:" + btnShow.Bottom.ToString()); Console.WriteLine("Button Top:" + btnShow.Top.ToString() ); Console.WriteLine("Button Left:" + btnShow.Left.ToString() ); Console.WriteLine("Button Right:" + btnShow.Right.ToString() ); Console.WriteLine("Button Location:" + btnShow.Location.ToString() ); Console.WriteLine("Button Width:" + btnShow.Width.ToString() ); Console.WriteLine("Button Height:" + btnShow.Height.ToString() ); Console.WriteLine("Button Size:" + btnShow.Size.ToString() ); Console.WriteLine("Button ClientSize:" + btnShow.ClientSize.ToString() ); Console.WriteLine("Font:" + btnShow.Font.ToString()); } }