Csharp/CSharp Tutorial/GUI Windows Forms/Anchoring

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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>