Csharp/C Sharp/GUI Windows Form/Panel

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

Panel and form dock pad

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {

 private System.Windows.Forms.GroupBox GroupBox1;
 private System.Windows.Forms.Button cmdUpdate;
 private System.Windows.Forms.NumericUpDown udDockPaddingForm;
 private System.Windows.Forms.NumericUpDown udDockPaddingPanel;
 private System.Windows.Forms.ruboBox lstDockPanel;
 private System.Windows.Forms.Label Label3;
 private System.Windows.Forms.Label Label4;
 private System.Windows.Forms.ruboBox lstDockTextBox;
 private System.Windows.Forms.Label Label2;
 private System.Windows.Forms.Label Label1;
 private System.Windows.Forms.Panel pnlDock;
 private System.Windows.Forms.TextBox txtDock;
 public Form1() {
       InitializeComponent();
       lstDockPanel.Items.AddRange(Enum.GetNames(Dock.GetType()));
     lstDockTextBox.Items.AddRange(Enum.GetNames(Dock.GetType()));
     lstDockPanel.Text = Enum.GetName(Dock.GetType(), pnlDock.Dock);
     lstDockTextBox.Text = Enum.GetName(Dock.GetType(), lstDockTextBox.Dock);
 }
 private void cmdUpdate_Click(object sender, EventArgs e)
 {
   this.DockPadding.All = (int)udDockPaddingForm.Value;
   pnlDock.DockPadding.All = (int)udDockPaddingPanel.Value;
   TypeConverter converter;
   converter = TypeDescriptor.GetConverter(Dock.GetType());
   pnlDock.Dock = (DockStyle)converter.ConvertFromString(lstDockPanel.Text);
   txtDock.Dock = (DockStyle)converter.ConvertFromString(lstDockTextBox.Text);
 }
 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.ruboBox();
   this.Label3 = new System.Windows.Forms.Label();
   this.Label4 = new System.Windows.Forms.Label();
   this.lstDockTextBox = new System.Windows.Forms.ruboBox();
   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.ruponentModel.ISupportInitialize)(this.udDockPaddingForm)).BeginInit();
   ((System.ruponentModel.ISupportInitialize)(this.udDockPaddingPanel)).BeginInit();
   this.pnlDock.SuspendLayout();
   this.SuspendLayout();
   // 
   // GroupBox1
   // 
   this.GroupBox1.Controls.Add(this.cmdUpdate);
   this.GroupBox1.Controls.Add(this.udDockPaddingForm);
   this.GroupBox1.Controls.Add(this.udDockPaddingPanel);
   this.GroupBox1.Controls.Add(this.lstDockPanel);
   this.GroupBox1.Controls.Add(this.Label3);
   this.GroupBox1.Controls.Add(this.Label4);
   this.GroupBox1.Controls.Add(this.lstDockTextBox);
   this.GroupBox1.Controls.Add(this.Label2);
   this.GroupBox1.Controls.Add(this.Label1);
   this.GroupBox1.Location = new System.Drawing.Point(202, 20);
   this.GroupBox1.Name = "GroupBox1";
   this.GroupBox1.Size = new System.Drawing.Size(284, 224);
   this.GroupBox1.TabIndex = 14;
   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 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 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 decimal(new int[] {
       20,
       0,
       0,
       0});
   // 
   // lstDockPanel
   // 
   this.lstDockPanel.DropDownStyle = System.Windows.Forms.ruboBoxStyle.DropDownList;
   this.lstDockPanel.FormattingEnabled = true;
   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.ruboBoxStyle.DropDownList;
   this.lstDockTextBox.FormattingEnabled = true;
   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 = "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 = "Form\"s DockPadding:";
   // 
   // pnlDock
   // 
   this.pnlDock.Controls.Add(this.txtDock);
   this.pnlDock.Dock = System.Windows.Forms.DockStyle.Left;
   this.pnlDock.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
   this.pnlDock.Location = new System.Drawing.Point(0, 0);
   this.pnlDock.Name = "pnlDock";
   this.pnlDock.Padding = new System.Windows.Forms.Padding(20);
   this.pnlDock.Size = new System.Drawing.Size(224, 314);
   this.pnlDock.TabIndex = 13;
   // 
   // 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, ((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 = "This is a TextBox.";
   // 
   // Form1
   // 
   this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
   this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
   this.ClientSize = new System.Drawing.Size(497, 314);
   this.Controls.Add(this.GroupBox1);
   this.Controls.Add(this.pnlDock);
   this.Text = "Docking At Work";
   this.GroupBox1.ResumeLayout(false);
   ((System.ruponentModel.ISupportInitialize)(this.udDockPaddingForm)).EndInit();
   ((System.ruponentModel.ISupportInitialize)(this.udDockPaddingPanel)).EndInit();
   this.pnlDock.ResumeLayout(false);
   this.pnlDock.PerformLayout();
   this.ResumeLayout(false);
 }
 [STAThread]
 static void Main()
 {
   Application.EnableVisualStyles();
   Application.Run(new Form1());
 }

}


      </source>


Scrolling Picture

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {

   public Form1() {
       this.panel1 = new System.Windows.Forms.Panel();
       this.SuspendLayout();
       this.panel1.AutoScroll = true;
       this.panel1.BackgroundImage = new Bitmap("yourfile.bmp");
       this.panel1.Location = new System.Drawing.Point(13, 13);
       this.panel1.Size = new System.Drawing.Size(267, 243);
       this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(292, 268);
       this.Controls.Add(this.panel1);
       this.Load += new System.EventHandler(this.Form1_Load);
       this.ResumeLayout(false);        this.panel1.AutoScrollMinSize = this.panel1.BackgroundImage.Size;
   }
   private void Form1_Load(object sender, EventArgs e) {
       int midX = this.panel1.AutoScrollMinSize.Width / 2;
       int midY = this.panel1.AutoScrollMinSize.Height / 2;
       int halfSizeX = this.panel1.Size.Width / 2;
       int halfSizeY = this.panel1.Size.Height / 2;
       int startPosX = midX - halfSizeX;
       if (startPosX < 0) startPosX = 0;
       int startPosY = midY - halfSizeY;
       if (startPosY < 0) startPosY = 0;
       this.panel1.AutoScrollPosition = new Point(startPosX, startPosY);
   }
   private System.Windows.Forms.Panel panel1;
   [STAThread]
   static void Main() {
       Application.EnableVisualStyles();
       Application.Run(new Form1());
   }

}

</source>


Split Container(Panel): Collapsed

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {

 private System.Windows.Forms.SplitContainer splitContainer1;
 private System.Windows.Forms.SplitContainer splitContainer2;
 private System.Windows.Forms.WebBrowser webBrowser1;
 private System.Windows.Forms.TextBox TextBox1;
 private System.Windows.Forms.Panel pnlFileList;
 private System.Windows.Forms.Button cmdHide;
 private System.Windows.Forms.ListView ListView1;
 private System.Windows.Forms.ColumnHeader ColumnHeader1;
 private System.Windows.Forms.Panel pnlShow;
 private System.Windows.Forms.Button cmdShow;
 public Form1() {
       InitializeComponent();
       ListView1.Items.Add("A");
       ListView1.Items.Add("B");
       ListView1.Items.Add("C");
 }
 private void cmdHide_Click(object sender, EventArgs e)
 {
   splitContainer1.Panel1Collapsed = true;
   pnlShow.Visible = true;
 }
 private void cmdShow_Click(object sender, EventArgs e)
 {
   splitContainer1.Panel1Collapsed = false;
   pnlShow.Visible = false;
   
 }
 private void InitializeComponent()
 {
       this.splitContainer1 = new System.Windows.Forms.SplitContainer();
       this.pnlFileList = new System.Windows.Forms.Panel();
       this.cmdHide = new System.Windows.Forms.Button();
       this.ListView1 = new System.Windows.Forms.ListView();
       this.ColumnHeader1 = new System.Windows.Forms.ColumnHeader();
       this.splitContainer2 = new System.Windows.Forms.SplitContainer();
       this.webBrowser1 = new System.Windows.Forms.WebBrowser();
       this.TextBox1 = new System.Windows.Forms.TextBox();
       this.pnlShow = new System.Windows.Forms.Panel();
       this.cmdShow = new System.Windows.Forms.Button();
       this.splitContainer1.Panel1.SuspendLayout();
       this.splitContainer1.Panel2.SuspendLayout();
       this.splitContainer1.SuspendLayout();
       this.pnlFileList.SuspendLayout();
       this.splitContainer2.Panel1.SuspendLayout();
       this.splitContainer2.Panel2.SuspendLayout();
       this.splitContainer2.SuspendLayout();
       this.pnlShow.SuspendLayout();
       this.SuspendLayout();
       // 
       // splitContainer1
       // 
       this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
       this.splitContainer1.Location = new System.Drawing.Point(29, 10);
       this.splitContainer1.Name = "splitContainer1";
       // 
       // splitContainer1.Panel1
       // 
       this.splitContainer1.Panel1.Controls.Add(this.pnlFileList);
       this.splitContainer1.Panel1MinSize = 50;
       // 
       // splitContainer1.Panel2
       // 
       this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
       this.splitContainer1.Size = new System.Drawing.Size(477, 366);
       this.splitContainer1.SplitterDistance = 155;
       this.splitContainer1.TabIndex = 0;
       this.splitContainer1.Text = "splitContainer1";
       // 
       // pnlFileList
       // 
       this.pnlFileList.Controls.Add(this.cmdHide);
       this.pnlFileList.Controls.Add(this.ListView1);
       this.pnlFileList.Dock = System.Windows.Forms.DockStyle.Fill;
       this.pnlFileList.Location = new System.Drawing.Point(0, 0);
       this.pnlFileList.Name = "pnlFileList";
       this.pnlFileList.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0);
       this.pnlFileList.Size = new System.Drawing.Size(155, 366);
       this.pnlFileList.TabIndex = 21;
       // 
       // cmdHide
       // 
       this.cmdHide.Dock = System.Windows.Forms.DockStyle.Bottom;
       this.cmdHide.FlatStyle = System.Windows.Forms.FlatStyle.System;
       this.cmdHide.Location = new System.Drawing.Point(0, 346);
       this.cmdHide.Name = "cmdHide";
       this.cmdHide.Size = new System.Drawing.Size(154, 20);
       this.cmdHide.TabIndex = 23;
       this.cmdHide.Text = "<< Hide";
       this.cmdHide.Click += new System.EventHandler(this.cmdHide_Click);
       // 
       // ListView1
       // 
       this.ListView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.ListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
       this.ColumnHeader1});
       this.ListView1.Location = new System.Drawing.Point(0, 3);
       this.ListView1.Name = "ListView1";
       this.ListView1.Size = new System.Drawing.Size(152, 337);
       this.ListView1.TabIndex = 22;
       this.ListView1.UseCompatibleStateImageBehavior = false;
       this.ListView1.View = System.Windows.Forms.View.Details;
       // 
       // ColumnHeader1
       // 
       this.ColumnHeader1.Name = "ColumnHeader1";
       this.ColumnHeader1.Text = "File";
       this.ColumnHeader1.Width = 99;
       // 
       // splitContainer2
       // 
       this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
       this.splitContainer2.Location = new System.Drawing.Point(0, 0);
       this.splitContainer2.Name = "splitContainer2";
       this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
       // 
       // splitContainer2.Panel1
       // 
       this.splitContainer2.Panel1.Controls.Add(this.webBrowser1);
       // 
       // splitContainer2.Panel2
       // 
       this.splitContainer2.Panel2.Controls.Add(this.TextBox1);
       this.splitContainer2.Size = new System.Drawing.Size(318, 366);
       this.splitContainer2.SplitterDistance = 173;
       this.splitContainer2.TabIndex = 0;
       this.splitContainer2.Text = "splitContainer2";
       // 
       // webBrowser1
       // 
       this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill;
       this.webBrowser1.Location = new System.Drawing.Point(0, 0);
       this.webBrowser1.Name = "webBrowser1";
       this.webBrowser1.Size = new System.Drawing.Size(318, 173);
       this.webBrowser1.TabIndex = 0;
       // 
       // TextBox1
       // 
       this.TextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
       this.TextBox1.Location = new System.Drawing.Point(0, 0);
       this.TextBox1.Multiline = true;
       this.TextBox1.Name = "TextBox1";
       this.TextBox1.ReadOnly = true;
       this.TextBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
       this.TextBox1.Size = new System.Drawing.Size(318, 189);
       this.TextBox1.TabIndex = 1;
       // 
       // pnlShow
       // 
       this.pnlShow.Controls.Add(this.cmdShow);
       this.pnlShow.Dock = System.Windows.Forms.DockStyle.Left;
       this.pnlShow.Location = new System.Drawing.Point(10, 10);
       this.pnlShow.Name = "pnlShow";
       this.pnlShow.Padding = new System.Windows.Forms.Padding(0, 0, 3, 0);
       this.pnlShow.Size = new System.Drawing.Size(19, 366);
       this.pnlShow.TabIndex = 23;
       this.pnlShow.Visible = false;
       // 
       // cmdShow
       // 
       this.cmdShow.Dock = System.Windows.Forms.DockStyle.Fill;
       this.cmdShow.FlatStyle = System.Windows.Forms.FlatStyle.System;
       this.cmdShow.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
       this.cmdShow.Location = new System.Drawing.Point(0, 0);
       this.cmdShow.Name = "cmdShow";
       this.cmdShow.Size = new System.Drawing.Size(16, 366);
       this.cmdShow.TabIndex = 21;
       this.cmdShow.Text = ">";
       this.cmdShow.Click += new System.EventHandler(this.cmdShow_Click);
       // 
       // Form1
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(516, 386);
       this.Controls.Add(this.splitContainer1);
       this.Controls.Add(this.pnlShow);
       this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
       this.Name = "Form1";
       this.Padding = new System.Windows.Forms.Padding(10);
       this.Text = "Split Window";
       this.splitContainer1.Panel1.ResumeLayout(false);
       this.splitContainer1.Panel2.ResumeLayout(false);
       this.splitContainer1.ResumeLayout(false);
       this.pnlFileList.ResumeLayout(false);
       this.splitContainer2.Panel1.ResumeLayout(false);
       this.splitContainer2.Panel2.ResumeLayout(false);
       this.splitContainer2.Panel2.PerformLayout();
       this.splitContainer2.ResumeLayout(false);
       this.pnlShow.ResumeLayout(false);
       this.ResumeLayout(false);
 }
 [STAThread]
 static void Main()
 {
   Application.EnableVisualStyles();
   Application.Run(new Form1());
 }

}


      </source>


Subclass Panel

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; public class ScrollingText : System.Windows.Forms.Panel {

   Font textFont = new Font("Times New Roman", 24);
   public ScrollingText() {
       InitializeComponent();
   }
   private void ScrollingText_Paint(object sender, PaintEventArgs e) {
       Graphics g = e.Graphics;
       g.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
       g.DrawString("Hello, World", textFont, Brushes.Black, 40, 40);
       g.DrawString("Hello, World", textFont, Brushes.Red, 40, 240);
       g.DrawString("Hello, World", textFont, Brushes.Blue, 350, 40);
       g.DrawString("Hello, World", textFont, Brushes.Green, 350, 240);
   }
   private void InitializeComponent() {
       this.SuspendLayout();
       this.AutoScroll = true;
       this.AutoScrollMinSize = new System.Drawing.Size(600, 400);
       this.BackColor = System.Drawing.SystemColors.Window;
       this.Paint += new System.Windows.Forms.PaintEventHandler(this.ScrollingText_Paint);
       this.ResumeLayout(false);
   }

} public class Form1 : Form {

   public Form1() {
       InitializeComponent();
   }
   private void InitializeComponent() {
       this.scrollingText1 = new ScrollingText();
       this.SuspendLayout();
       this.scrollingText1.AutoScroll = true;
       this.scrollingText1.AutoScrollMinSize = new System.Drawing.Size(600, 400);
       this.scrollingText1.BackColor = System.Drawing.SystemColors.Window;
       this.scrollingText1.Location = new System.Drawing.Point(13, 13);
       this.scrollingText1.Size = new System.Drawing.Size(267, 243);
       this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(292, 268);
       this.Controls.Add(this.scrollingText1);
       this.ResumeLayout(false);
   }
   private ScrollingText scrollingText1;
   [STAThread]
   static void Main() {
       Application.EnableVisualStyles();
       Application.Run(new Form1());
   }

}

</source>