SSISO Community

갤러리정

Docking Demo

/*
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.\r\n\r\nThe  Panel  is  docked  to  the  edge  of  the  f"  +
                                "orm.\r\n\r\nThe  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);
                }
        }
}

613 view

4.0 stars