/* User Interfaces in C#: Windows Forms and Custom Controls by Matthew MacDonald Publisher: Apress ISBN: 1590590457 */ using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace Docking { /// <summary> /// Summary description for Docking. /// </summary> public class Docking : System.Windows.Forms.Form { internal System.Windows.Forms.GroupBox GroupBox1; internal System.Windows.Forms.Button cmdUpdate; internal System.Windows.Forms.NumericUpDown udDockPaddingForm; internal System.Windows.Forms.NumericUpDown udDockPaddingPanel; internal System.Windows.Forms.ComboBox lstDockPanel; internal System.Windows.Forms.Label Label3; internal System.Windows.Forms.Label Label4; internal System.Windows.Forms.ComboBox lstDockTextBox; internal System.Windows.Forms.Label Label2; internal System.Windows.Forms.Label Label1; internal System.Windows.Forms.Panel pnlDock; internal System.Windows.Forms.TextBox txtDock; /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null; public Docking() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.GroupBox1 = new System.Windows.Forms.GroupBox(); this.cmdUpdate = new System.Windows.Forms.Button(); this.udDockPaddingForm = new System.Windows.Forms.NumericUpDown(); this.udDockPaddingPanel = new System.Windows.Forms.NumericUpDown(); this.lstDockPanel = new System.Windows.Forms.ComboBox(); this.Label3 = new System.Windows.Forms.Label(); this.Label4 = new System.Windows.Forms.Label(); this.lstDockTextBox = new System.Windows.Forms.ComboBox(); this.Label2 = new System.Windows.Forms.Label(); this.Label1 = new System.Windows.Forms.Label(); this.pnlDock = new System.Windows.Forms.Panel(); this.txtDock = new System.Windows.Forms.TextBox(); this.GroupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.udDockPaddingForm)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.udDockPaddingPanel)).BeginInit(); this.pnlDock.SuspendLayout(); this.SuspendLayout(); // // GroupBox1 // this.GroupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { this.cmdUpdate, this.udDockPaddingForm, this.udDockPaddingPanel, this.lstDockPanel, this.Label3, this.Label4, this.lstDockTextBox, this.Label2, this.Label1}); this.GroupBox1.Location = new System.Drawing.Point(192, 20); this.GroupBox1.Name = "GroupBox1"; this.GroupBox1.Size = new System.Drawing.Size(284, 224); this.GroupBox1.TabIndex = 12; this.GroupBox1.TabStop = false; this.GroupBox1.Text = "Configure"; // // cmdUpdate // this.cmdUpdate.Location = new System.Drawing.Point(160, 180); this.cmdUpdate.Name = "cmdUpdate"; this.cmdUpdate.Size = new System.Drawing.Size(84, 24); this.cmdUpdate.TabIndex = 10; this.cmdUpdate.Text = "Update"; this.cmdUpdate.Click += new System.EventHandler(this.cmdUpdate_Click); // // udDockPaddingForm // this.udDockPaddingForm.Increment = new System.Decimal(new int[] { 5, 0, 0, 0}); this.udDockPaddingForm.Location = new System.Drawing.Point(160, 32); this.udDockPaddingForm.Name = "udDockPaddingForm"; this.udDockPaddingForm.Size = new System.Drawing.Size(52, 21); this.udDockPaddingForm.TabIndex = 4; // // udDockPaddingPanel // this.udDockPaddingPanel.Increment = new System.Decimal(new int[] { 5, 0, 0, 0}); this.udDockPaddingPanel.Location = new System.Drawing.Point(160, 56); this.udDockPaddingPanel.Name = "udDockPaddingPanel"; this.udDockPaddingPanel.Size = new System.Drawing.Size(52, 21); this.udDockPaddingPanel.TabIndex = 5; this.udDockPaddingPanel.Value = new System.Decimal(new int[] { 20, 0, 0, 0}); // // lstDockPanel // this.lstDockPanel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.lstDockPanel.Location = new System.Drawing.Point(156, 100); this.lstDockPanel.Name = "lstDockPanel"; this.lstDockPanel.Size = new System.Drawing.Size(92, 21); this.lstDockPanel.TabIndex = 8; // // Label3 // this.Label3.Location = new System.Drawing.Point(16, 104); this.Label3.Name = "Label3"; this.Label3.Size = new System.Drawing.Size(136, 20); this.Label3.TabIndex = 6; this.Label3.Text = "Dock Panel To:"; // // Label4 // this.Label4.Location = new System.Drawing.Point(16, 128); this.Label4.Name = "Label4"; this.Label4.Size = new System.Drawing.Size(136, 20); this.Label4.TabIndex = 7; this.Label4.Text = "Dock TextBox To:"; // // lstDockTextBox // this.lstDockTextBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.lstDockTextBox.Location = new System.Drawing.Point(156, 124); this.lstDockTextBox.Name = "lstDockTextBox"; this.lstDockTextBox.Size = new System.Drawing.Size(92, 21); this.lstDockTextBox.TabIndex = 9; // // Label2 // this.Label2.Location = new System.Drawing.Point(16, 60); this.Label2.Name = "Label2"; this.Label2.Size = new System.Drawing.Size(136, 20); this.Label2.TabIndex = 3; this.Label2.Text = "Set Panel's DockPadding:"; // // Label1 // this.Label1.Location = new System.Drawing.Point(16, 36); this.Label1.Name = "Label1"; this.Label1.Size = new System.Drawing.Size(136, 20); this.Label1.TabIndex = 2; this.Label1.Text = "Set Form's DockPadding:"; // // pnlDock // this.pnlDock.Controls.AddRange(new System.Windows.Forms.Control[] { this.txtDock}); this.pnlDock.Dock = System.Windows.Forms.DockStyle.Left; this.pnlDock.DockPadding.All = 20; this.pnlDock.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.pnlDock.Name = "pnlDock"; this.pnlDock.Size = new System.Drawing.Size(224, 314); this.pnlDock.TabIndex = 11; // // txtDock // this.txtDock.Dock = System.Windows.Forms.DockStyle.Left; this.txtDock.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.txtDock.Location = new System.Drawing.Point(20, 20); this.txtDock.Multiline = true; this.txtDock.Name = "txtDock"; this.txtDock.Size = new System.Drawing.Size(108, 274); this.txtDock.TabIndex = 0; this.txtDock.Text = "I'm docked to the edge of this Panel. The Panel is docked to the edge of the f" + "orm. The Panel's DockPadding gives the necessary room to breathe."; // // Docking // this.AutoScaleBaseSize = new System.Drawing.Size(5, 14); this.ClientSize = new System.Drawing.Size(496, 314); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.GroupBox1, this.pnlDock}); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.Name = "Docking"; this.Text = "Docking At Work"; this.Load += new System.EventHandler(this.Docking_Load); this.GroupBox1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.udDockPaddingForm)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.udDockPaddingPanel)).EndInit(); this.pnlDock.ResumeLayout(false); this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new Docking()); } private void Docking_Load(object sender, System.EventArgs e) { lstDockPanel.Items.AddRange(Enum.GetNames(Dock.GetType())); lstDockTextBox.Items.AddRange(Enum.GetNames(Dock.GetType())); } private void cmdUpdate_Click(object sender, System.EventArgs e) { this.DockPadding.All = (int)udDockPaddingForm.Value; pnlDock.DockPadding.All = (int)udDockPaddingPanel.Value; // Now we use some rather unusual code to translate the string // in the listbox into an enumeration object that can be used // to set the Dock property. // This looks quite strange, but is actually just one more // part of the shared class library. // First we get the converter that can do the job. TypeConverter converter; converter = TypeDescriptor.GetConverter(Dock.GetType()); // Then we use it to convert the string. pnlDock.Dock = (DockStyle)converter.ConvertFromString(lstDockPanel.Text); txtDock.Dock = (DockStyle)converter.ConvertFromString(lstDockTextBox.Text); } } }