Csharp/CSharp Tutorial/GUI Windows Forms/Anchoring
Anchor and dock
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class AnchorForm : System.Windows.Forms.Form {
private System.ruponentModel.Container components; private System.Windows.Forms.MenuItem dockNone; private System.Windows.Forms.MenuItem dockFill; private System.Windows.Forms.MenuItem dockRight; private System.Windows.Forms.MenuItem dockLeft; private System.Windows.Forms.MenuItem dockBottom; private System.Windows.Forms.MenuItem dockTop; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.Button button1; private System.Windows.Forms.MenuItem ancRight; private System.Windows.Forms.MenuItem ancBottom; private System.Windows.Forms.MenuItem ancLeft; private System.Windows.Forms.MenuItem ancTop; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem ancNone; private System.Windows.Forms.MenuItem ancTopLeft; private System.Windows.Forms.MenuItem ancBotRight; private System.Windows.Forms.MenuItem ancBotLeft; private System.Windows.Forms.MenuItem ancTopRight; private System.Windows.Forms.MainMenu mainMenu1; public AnchorForm() { InitializeComponent(); CenterToScreen(); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } private void InitializeComponent() { this.dockRight = new System.Windows.Forms.MenuItem(); this.dockBottom = new System.Windows.Forms.MenuItem(); this.ancNone = new System.Windows.Forms.MenuItem(); this.ancTopLeft = new System.Windows.Forms.MenuItem(); this.ancTop = new System.Windows.Forms.MenuItem(); this.dockFill = new System.Windows.Forms.MenuItem(); this.mainMenu1 = new System.Windows.Forms.MainMenu(); this.menuItem1 = new System.Windows.Forms.MenuItem(); this.ancLeft = new System.Windows.Forms.MenuItem(); this.ancBottom = new System.Windows.Forms.MenuItem(); this.ancRight = new System.Windows.Forms.MenuItem(); this.ancTopRight = new System.Windows.Forms.MenuItem(); this.ancBotLeft = new System.Windows.Forms.MenuItem(); this.ancBotRight = new System.Windows.Forms.MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.dockTop = new System.Windows.Forms.MenuItem(); this.dockLeft = new System.Windows.Forms.MenuItem(); this.dockNone = new System.Windows.Forms.MenuItem(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); this.dockRight.Index = 3; this.dockRight.Text = "Right"; this.dockRight.Click += new System.EventHandler(this.dockRight_Click); this.dockBottom.Index = 1; this.dockBottom.Text = "Bottom"; this.dockBottom.Click += new System.EventHandler(this.dockBottom_Click); this.ancNone.Index = 4; this.ancNone.Text = "None"; this.ancNone.Click += new System.EventHandler(this.ancNone_Click); this.ancTopLeft.Index = 5; this.ancTopLeft.Text = "TopLeft"; this.ancTopLeft.Click += new System.EventHandler(this.ancTopLeft_Click); this.ancTop.Index = 0; this.ancTop.Text = "Top"; this.ancTop.Click += new System.EventHandler(this.ancTop_Click); this.dockFill.Index = 4; this.dockFill.Text = "Fill"; this.dockFill.Click += new System.EventHandler(this.dockFill_Click); this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {this.menuItem1, this.menuItem2}); this.menuItem1.Index = 0; this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.ancTop, this.ancLeft, this.ancBottom, this.ancRight, this.ancNone, this.ancTopLeft, this.ancTopRight, this.ancBotLeft, this.ancBotRight}); this.menuItem1.Text = "&Anchor Value"; this.ancLeft.Index = 1; this.ancLeft.Text = "Left"; this.ancLeft.Click += new System.EventHandler(this.ancLeft_Click); this.ancBottom.Index = 2; this.ancBottom.Text = "Bottom"; this.ancBottom.Click += new System.EventHandler(this.ancBottom_Click); this.ancRight.Index = 3; this.ancRight.Text = "Right"; this.ancRight.Click += new System.EventHandler(this.ancRight_Click); this.ancTopRight.Index = 6; this.ancTopRight.Text = "TopRight"; this.ancTopRight.Click += new System.EventHandler(this.ancTopRight_Click); this.ancBotLeft.Index = 7; this.ancBotLeft.Text = "BottomLeft"; this.ancBotLeft.Click += new System.EventHandler(this.ancBotLeft_Click); this.ancBotRight.Index = 8; this.ancBotRight.Text = "BottomRight"; this.ancBotRight.Click += new System.EventHandler(this.ancBotRight_Click); this.menuItem2.Index = 1; this.menuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.dockTop, this.dockBottom, this.dockLeft, this.dockRight, this.dockFill, this.dockNone}); this.menuItem2.Text = "Dock Value"; this.dockTop.Index = 0; this.dockTop.Text = "Top"; this.dockTop.Click += new System.EventHandler(this.dockTop_Click); this.dockLeft.Index = 2; this.dockLeft.Text = "Left"; this.dockLeft.Click += new System.EventHandler(this.dockLeft_Click); this.dockNone.Index = 5; this.dockNone.Text = "None"; this.dockNone.Click += new System.EventHandler(this.dockNone_Click); this.button1.Location = new System.Drawing.Point(8, 16); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(120, 40); this.button1.TabIndex = 0; this.button1.Text = "TheButton"; // // AnchorForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 253); this.Controls.Add(this.button1); this.Menu = this.mainMenu1; this.Name = "AnchorForm"; this.Text = "Anchoring (and Docking) Controls"; this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new AnchorForm()); } protected void dockNone_Click (object sender, System.EventArgs e) { button1.Dock = DockStyle.None; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void dockFill_Click (object sender, System.EventArgs e) { button1.Dock = DockStyle.Fill; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void dockRight_Click (object sender, System.EventArgs e) { button1.Dock = DockStyle.Right; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void dockLeft_Click (object sender, System.EventArgs e) { button1.Dock = DockStyle.Left; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void dockBottom_Click (object sender, System.EventArgs e) { button1.Dock = DockStyle.Bottom; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void dockTop_Click (object sender, System.EventArgs e) { button1.Dock = DockStyle.Top; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void ancRight_Click (object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Right; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void ancBottom_Click (object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Bottom; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void ancLeft_Click (object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Left; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } protected void ancTop_Click (object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Top; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } private void ancNone_Click(object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.None; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } private void ancTopLeft_Click(object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Top | AnchorStyles.Left; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } private void ancTopRight_Click(object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Top | AnchorStyles.Right; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } private void ancBotLeft_Click(object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); } private void ancBotRight_Click(object sender, System.EventArgs e) { button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; Console.WriteLine("Anchor: " + button1.Anchor.ToString() + "\nDock: " + button1.Dock.ToString()); }
}</source>
Control Anchoring
<source lang="csharp">using System; using System.Drawing; using System.Windows.Forms; public class ControlAnchor : Form {
public ControlAnchor() { Size = new Size(350,400); int xButtonSize, yButtonSize = Font.Height * 2; int xMargin, yMargin; xMargin = yMargin = Font.Height * 2; Button btn = new Button(); btn.Parent = this; btn.Text = "Upper Left"; xButtonSize = (int)(Font.Height * .75) * btn.Text.Length; btn.Size = new Size(xButtonSize, yButtonSize); btn.Location = new Point(xMargin, yMargin); btn = new Button(); btn.Parent = this; btn.Text = "Lower Left"; xButtonSize = (int)(Font.Height * .75) * btn.Text.Length; btn.Size = new Size(xButtonSize, yButtonSize); btn.Location = new Point(xMargin, this.ClientSize.Height - yMargin - yButtonSize); btn.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; btn = new Button(); btn.Parent = this; btn.Text = "Upper Right"; xButtonSize = (int)(Font.Height * .75) * btn.Text.Length; btn.Size = new Size(xButtonSize, yButtonSize); btn.Location = new Point(this.ClientSize.Width - xMargin - xButtonSize, yMargin); btn.Anchor = AnchorStyles.Top | AnchorStyles.Right; btn = new Button(); btn.Parent = this; btn.Text = "Lower Right"; xButtonSize = (int)(Font.Height * .75) * btn.Text.Length; btn.Size = new Size(xButtonSize, yButtonSize); btn.Location = new Point(this.ClientSize.Width - xMargin - xButtonSize, this.ClientSize.Height - yMargin - yButtonSize); btn.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; btn = new Button(); btn.Parent = this; btn.Text = "Middle Span"; xButtonSize = this.ClientSize.Width - (2 * xMargin); btn.Size = new Size(xButtonSize, yButtonSize); btn.Location = new Point(xMargin, (int)(this.ClientSize.Height / 2) - yButtonSize); btn.Anchor = AnchorStyles.Left | AnchorStyles.Right; } static void Main() { Application.Run(new ControlAnchor()); }
}</source>