using System; using System.Drawing; using System.Windows.Forms; class OnePanelWithSplitter: Form { public static void Main() { Application.Run(new OnePanelWithSplitter()); } public OnePanelWithSplitter() { Text = "One Panel with Splitter"; Splitter split = new Splitter(); split.Parent = this; split.Dock = DockStyle.Left; Panel panel = new Panel(); panel.Parent = this; panel.Dock = DockStyle.Left; panel.BackColor = Color.Lime; panel.Resize += new EventHandler(PanelOnResize); panel.Paint += new PaintEventHandler(PanelOnPaint); } void PanelOnResize(object obj, EventArgs ea) { ((Panel) obj).Invalidate(); } void PanelOnPaint(object obj, PaintEventArgs pea) { Panel panel = (Panel) obj; Graphics grfx = pea.Graphics; grfx.DrawEllipse(Pens.Black, 0, 0, panel.Width - 1, panel.Height - 1); } }
Display message in StatusBar
using System; using System.Collections.Generic; using System.ComponentModel; 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.ComboBox lstFonts; private System.Windows.Forms.Label label1; private System.Windows.Forms.StatusStrip statusBar; private System.Windows.Forms.ToolStripStatusLabel statusLabel; public Form1() { InitializeComponent(); System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection(); foreach (FontFamily family in fonts.Families) { lstFonts.Items.Add(family.Name); } } private void lstFonts_SelectedIndexChanged(object sender, EventArgs e) { this.Invalidate(); } private void Form1_Paint(object sender, PaintEventArgs e) { if (lstFonts.SelectedIndex != -1) { e.Graphics.DrawString(lstFonts.Text, new Font(lstFonts.Text, 50), Brushes.Black, 10, 50); statusBar.Items[0].Text = lstFonts.Text; } } private void InitializeComponent() { this.groupBox1 = new System.Windows.Forms.GroupBox(); this.lstFonts = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); this.statusBar = new System.Windows.Forms.StatusStrip(); this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.groupBox1.SuspendLayout(); this.statusBar.SuspendLayout(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.lstFonts); this.groupBox1.Controls.Add(this.label1); this.groupBox1.Location = new System.Drawing.Point(7, 0); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(497, 40); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; // // lstFonts // this.lstFonts.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.lstFonts.DropDownWidth = 340; this.lstFonts.FormattingEnabled = true; this.lstFonts.Location = new System.Drawing.Point(100, 12); this.lstFonts.Name = "lstFonts"; this.lstFonts.Size = new System.Drawing.Size(340, 21); this.lstFonts.TabIndex = 1; this.lstFonts.SelectedIndexChanged += new System.EventHandler(this.lstFonts_SelectedIndexChanged); // // label1 // this.label1.Location = new System.Drawing.Point(12, 16); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(80, 12); this.label1.TabIndex = 0; this.label1.Text = "Choose Font:"; // // statusBar // this.statusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusLabel}); this.statusBar.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table; this.statusBar.Location = new System.Drawing.Point(0, 155); this.statusBar.Name = "statusBar"; this.statusBar.Size = new System.Drawing.Size(516, 22); this.statusBar.TabIndex = 2; this.statusBar.Text = "statusStrip1"; // // statusLabel // this.statusLabel.Name = "statusLabel"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(516, 177); this.Controls.Add(this.groupBox1); this.Controls.Add(this.statusBar); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Text = "Font Viewer"; this.Load += new System.EventHandler(this.Form1_Load); this.groupBox1.ResumeLayout(false); this.statusBar.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Use Label as status bar
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form { private System.Windows.Forms.Label lblCount; List<Rectangle> squares = new List<Rectangle>(); public Form1() { InitializeComponent(); } private void NonOptimizedSquares_Paint(object sender, PaintEventArgs e) { Pen pen = new Pen(Color.Red, 10); foreach (Rectangle square in squares) { e.Graphics.DrawRectangle(pen, square); } pen.Dispose(); lblCount.Text = " " + squares.Count.ToString() + " squares"; } private void NonOptimizedSquares_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Rectangle square = new Rectangle(e.X, e.Y, 20, 20); squares.Add(square); square.Inflate(1, 1); Invalidate(square); } } private void InitializeComponent() { this.lblCount = new System.Windows.Forms.Label(); this.SuspendLayout(); // // lblCount // this.lblCount.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.lblCount.Dock = System.Windows.Forms.DockStyle.Bottom; this.lblCount.Location = new System.Drawing.Point(0, 251); this.lblCount.Name = "lblCount"; this.lblCount.Padding = new System.Windows.Forms.Padding(2); this.lblCount.Size = new System.Drawing.Size(299, 21); this.lblCount.TabIndex = 0; // // NonOptimizedSquares // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(299, 272); this.Controls.Add(this.lblCount); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "NonOptimizedSquares"; this.Text = "NonOptimizedSquares"; this.Paint += new System.Windows.Forms.PaintEventHandler(this.NonOptimizedSquares_Paint); this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.NonOptimizedSquares_MouseDown); this.ResumeLayout(false); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Split Three Across
using System; using System.Drawing; using System.Windows.Forms; class SplitThreeAcross: Form { public static void Main() { Application.Run(new SplitThreeAcross()); } public SplitThreeAcross() { Panel panel1 = new Panel(); panel1.Parent = this; panel1.Dock = DockStyle.Fill; panel1.BackColor = Color.Cyan; panel1.Resize += new EventHandler(PanelOnResize); panel1.Paint += new PaintEventHandler(PanelOnPaint); Splitter split1 = new Splitter(); split1.Parent = this; split1.Dock = DockStyle.Left; Panel panel2 = new Panel(); panel2.Parent = this; panel2.Dock = DockStyle.Left; panel2.BackColor = Color.Lime; panel2.Resize += new EventHandler(PanelOnResize); panel2.Paint += new PaintEventHandler(PanelOnPaint); Splitter split2 = new Splitter(); split2.Parent = this; split2.Dock = DockStyle.Right; Panel panel3 = new Panel(); panel3.Parent = this; panel3.Dock = DockStyle.Right; panel3.BackColor = Color.Red; panel3.Resize += new EventHandler(PanelOnResize); panel3.Paint += new PaintEventHandler(PanelOnPaint); panel1.Width = panel2.Width = panel3.Width = ClientSize.Width / 3; } void PanelOnResize(object obj, EventArgs ea) { ((Panel) obj).Invalidate(); } void PanelOnPaint(object obj, PaintEventArgs pea) { Panel panel = (Panel) obj; Graphics grfx = pea.Graphics; grfx.DrawEllipse(Pens.Black, 0, 0, panel.Width - 1, panel.Height - 1); } }
ScrollBars Demo
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace ScrollBars
{
///
///
public class ScrollBars : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.VScrollBar vScrollBar1;
///
///
int counter=0;
private System.Windows.Forms.Label label1;
private System.ComponentModel.Container components = null;
public ScrollBars()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
///
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.vScrollBar1 = new System.Windows.Forms.VScrollBar();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Font = new System.Drawing.Font(“Microsoft Sans Serif”, 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.textBox1.ForeColor = System.Drawing.Color.Transparent;
this.textBox1.Location = new System.Drawing.Point(24, 56);
this.textBox1.Multiline = true;
this.textBox1.Name = “textBox1”;
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(144, 32);
this.textBox1.TabIndex = 4;
this.textBox1.Text = “”;
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// vScrollBar1
//
this.vScrollBar1.Location = new System.Drawing.Point(168, 56);
this.vScrollBar1.Name = “vScrollBar1”;
this.vScrollBar1.Size = new System.Drawing.Size(16, 32);
this.vScrollBar1.TabIndex = 7;
this.vScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.vScrollBar1_Scroll);
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 16);
this.label1.Name = “label1”;
this.label1.Size = new System.Drawing.Size(192, 16);
this.label1.TabIndex = 6;
this.label1.Text = “Numeric Scolling using VScroll Bars”;
//
// ScrollBars
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(208, 109);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label1,
this.vScrollBar1,
this.textBox1});
this.Name = “ScrollBars”;
this.Text = “Numeric Scroll”;
this.Load += new System.EventHandler(this.ScrollBars_Load);
this.ResumeLayout(false);
}
#endregion
///
///
[STAThread]
static void Main()
{
Application.Run(new ScrollBars());
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
}
private void ScrollBars_Load(object sender, System.EventArgs e)
{
// Set the maximum range for the scrollbar
vScrollBar1.Maximum = 100;
// Set the minimum range for the scrollbar
vScrollBar1.Minimum = 0 ;
// Set the SmallChange factor
vScrollBar1.SmallChange = 1;
}
private void vScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
{
// Check if the increment is Small
if ( e.Type == ScrollEventType.Last )
counter = 100 ;
else
// Check if the scroll is moved to minimum pos
if ( e.Type == ScrollEventType.First)
counter = 0 ;
else
// Check if the scroll is moved small distance
if ( e.Type == ScrollEventType.SmallDecrement )
counter — ;
else
// Check if the scroll is moved small distance
if ( e.Type == ScrollEventType.SmallIncrement )
{
counter++;
MessageBox.Show(“Small increment”);
}
else
// Check if the scroll is moved large distance
if ( e.Type == ScrollEventType.LargeDecrement )
counter-=5;
else
// Check if the scroll is moved large distance
if ( e.Type == ScrollEventType.LargeIncrement )
{
MessageBox.Show(“Large increment”);
counter+=5;
}
else
// Check if the scroll is moved to the Min position
if ( e.Type == ScrollEventType.First )
counter = 0 ;
else
// Check if the scroll to the Max position
if ( e.Type == ScrollEventType.Last)
counter = 100 ;
Console.WriteLine(e.NewValue+”
“);
// Check if the scroll is moved large distance
if ( counter > 100 ) counter = 100 ;
if ( counter < 0 ) counter = 0 ;
textBox1.Text = counter.ToString() ;
}
}
}
[/csharp]
VScrollBar ValueChanged
using System;
using System.Drawing;
using System.Windows.Forms;
class ColorScroll: Form
{
Panel panel;
Label[] alabelName = new Label[3];
Label[] alabelValue = new Label[3];
VScrollBar[] avscroll = new VScrollBar[3];
public static void Main()
{
Application.Run(new ColorScroll());
}
public ColorScroll()
{
Color[] acolor = { Color.Red, Color.Green, Color.Blue };
panel = new Panel();
panel.Parent = this;
panel.Location = new Point(0, 0);
panel.BackColor = Color.White;
for (int i = 0; i < 3; i++) { alabelName[i] = new Label(); alabelName[i].Parent = panel; alabelName[i].ForeColor = acolor[i]; alabelName[i].Text = "&" + acolor[i].ToKnownColor(); alabelName[i].TextAlign = ContentAlignment.MiddleCenter; avscroll[i] = new VScrollBar(); avscroll[i].Parent = panel; avscroll[i].SmallChange = 1; avscroll[i].LargeChange = 16; avscroll[i].Minimum = 0; avscroll[i].Maximum = 255 + avscroll[i].LargeChange - 1; avscroll[i].ValueChanged += new EventHandler(ScrollOnValueChanged); avscroll[i].TabStop = true; alabelValue[i] = new Label(); alabelValue[i].Parent = panel; alabelValue[i].TextAlign = ContentAlignment.MiddleCenter; } Color color = BackColor; avscroll[0].Value = color.R; // Generates ValueChanged event avscroll[1].Value = color.G; avscroll[2].Value = color.B; OnResize(EventArgs.Empty); } protected override void OnResize(EventArgs ea) { base.OnResize(ea); int cx = ClientSize.Width; int cy = ClientSize.Height; int cyFont = Font.Height; panel.Size = new Size(cx / 2, cy); for (int i = 0; i < 3; i++) { alabelName[i].Location = new Point(i * cx / 6, cyFont / 2); alabelName[i].Size = new Size(cx / 6, cyFont); avscroll[i].Location = new Point((4 * i + 1) * cx / 24, 2 * cyFont); avscroll[i].Size = new Size(cx / 12, cy - 4 * cyFont); alabelValue[i].Location = new Point(i * cx / 6, cy - 3 * cyFont / 2); alabelValue[i].Size = new Size(cx / 6, cyFont); } } void ScrollOnValueChanged(Object obj, EventArgs ea) { for (int i = 0; i < 3; i++) if((VScrollBar) obj == avscroll[i]) alabelValue[i].Text = avscroll[i].Value.ToString(); BackColor = Color.FromArgb(avscroll[0].Value, avscroll[1].Value, avscroll[2].Value); } } [/csharp]
Scroll event
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.VScrollBar vScrollBar1;
int counter = 0;
private System.Windows.Forms.Label label1;
public Form1() {
this.textBox1 = new System.Windows.Forms.TextBox();
this.vScrollBar1 = new System.Windows.Forms.VScrollBar();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
this.textBox1.Font = new System.Drawing.Font(“Microsoft Sans Serif”, 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.textBox1.ForeColor = System.Drawing.Color.Transparent;
this.textBox1.Location = new System.Drawing.Point(24, 56);
this.textBox1.Multiline = true;
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(144, 32);
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.vScrollBar1.Location = new System.Drawing.Point(168, 56);
this.vScrollBar1.Size = new System.Drawing.Size(16, 32);
this.vScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.vScrollBar1_Scroll);
this.label1.Location = new System.Drawing.Point(8, 16);
this.label1.Size = new System.Drawing.Size(192, 16);
this.label1.Text = “Numeric Scolling using VScroll Bars”;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(208, 109);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label1,
this.vScrollBar1,
this.textBox1});
this.Text = “Numeric Scroll”;
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
[STAThread]
static void Main() {
Application.Run(new Form1());
}
private void textBox1_TextChanged(object sender, System.EventArgs e) {
}
private void Form1_Load(object sender, System.EventArgs e) {
vScrollBar1.Maximum = 100;
vScrollBar1.Minimum = 0;
vScrollBar1.SmallChange = 1;
}
private void vScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e) {
if (e.Type == ScrollEventType.Last)
counter = 100;
if (e.Type == ScrollEventType.First)
counter = 0;
if (e.Type == ScrollEventType.SmallDecrement)
counter–;
if (e.Type == ScrollEventType.SmallIncrement) {
counter++;
}
if (e.Type == ScrollEventType.LargeDecrement)
counter -= 5;
if (e.Type == ScrollEventType.LargeIncrement) {
counter += 5;
}
if (e.Type == ScrollEventType.First)
counter = 0;
if (e.Type == ScrollEventType.Last)
counter = 100;
Console.WriteLine(e.NewValue + ”
“);
if (counter > 100) counter = 100;
if (counter < 0) counter = 0;
Console.WriteLine(counter.ToString());
}
}
[/csharp]