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 {
public Form1() {
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 268);
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
this.ResumeLayout(false);
}
private void Form1_MouseMove(object sender, MouseEventArgs e) {
Point p = new Point(e.X, e.Y);
Rectangle r;
if (new Rectangle(0, 0, 100, 100).Contains(p))
this.Cursor = new Cursor("MyCursor.cur");
else if (new Rectangle(100, 0, 100, 100).Contains(p))
this.Cursor = Cursors.Hand;
else if (new Rectangle(0, 100, 100, 100).Contains(p))
this.Cursor = Cursors.VSplit;
else if (new Rectangle(100, 100, 100, 100).Contains(p))
this.Cursor = Cursors.UpArrow;
else
this.Cursor = Cursors.Default;
}
private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
g.FillRectangle(Brushes.Blue, 0, 0, 100, 100);
g.FillRectangle(Brushes.Red, 100, 0, 100, 100);
g.FillRectangle(Brushes.Yellow, 0, 100, 100, 100);
g.FillRectangle(Brushes.Green, 100, 100, 100, 100);
}
static void Main() {
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
Month: February 2011
Hand Cursor
using System.Drawing;
using System.Windows.Forms;
class FormProperties
{
public static void Main()
{
Form form = new Form();
form.Text = "Form Properties";
form.Cursor = Cursors.Hand;
Application.Run(form);
}
}
Set form window cursor
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
public class Form1 : Form
{
public Form1() {
InitializeComponent();
try
{
this.Cursor = AdvancedCursors.Create(Path.Combine(Application.StartupPath, "blob.ani"));
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void InitializeComponent()
{
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Text = "Form1";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
public class AdvancedCursors
{
[DllImport("User32.dll")]
private static extern IntPtr LoadCursorFromFile(String str);
public static Cursor Create(string filename)
{
IntPtr hCursor = LoadCursorFromFile(filename);
if (!IntPtr.Zero.Equals(hCursor))
{
return new Cursor(hCursor);
}
else
{
throw new ApplicationException("Could not create cursor from file " + filename);
}
}
}
Load animated cursor
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
public class Form1 : Form
{
public Form1() {
InitializeComponent();
try
{
this.Cursor = AdvancedCursors.Create(Path.Combine(Application.StartupPath, "blob.ani"));
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void InitializeComponent()
{
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Text = "Form1";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
public class AdvancedCursors
{
[DllImport("User32.dll")]
private static extern IntPtr LoadCursorFromFile(String str);
public static Cursor Create(string filename)
{
IntPtr hCursor = LoadCursorFromFile(filename);
if (!IntPtr.Zero.Equals(hCursor))
{
return new Cursor(hCursor);
}
else
{
throw new ApplicationException("Could not create cursor from file " + filename);
}
}
}
ComboBox Selected Item changed event
using System;
using System.Drawing;
using System.Windows.Forms;
public class SelectItem : Form {
private RadioButton square = new RadioButton();
private RadioButton circle = new RadioButton();
private ComboBox color = new ComboBox();
public SelectItem( ) {
Text = "Select Item";
square.Text = "Square";
circle.Text = "Circle";
color.Text = "Choose a color";
Size = new Size(400,250);
int w = 20;
square.Location = new Point(w, 30);
circle.Location = new Point(w += 10 + square.Width, 30);
color.Location = new Point(w += 10 + circle.Width, 30);
color.Items.Add("Red");
color.Items.Add("Green");
color.Items.Add("Blue");
Controls.Add(square);
Controls.Add(circle);
Controls.Add(color);
square.CheckedChanged += new EventHandler(Checked_Changed);
circle.CheckedChanged += new EventHandler(Checked_Changed);
color.SelectedIndexChanged += new EventHandler(Selected_Index);
}
protected void Selected_Index(Object sender, EventArgs e) {
if (color.SelectedItem.ToString() == "Red" )
Console.WriteLine("It is red.");
else if (color.SelectedItem.ToString() == "Green")
Console.WriteLine("It is green.");
else
Console.WriteLine("It is Blue");
}
protected void Checked_Changed(Object sender, EventArgs e) {
if (square.Checked)
Console.WriteLine("It is rectangle");
else
Console.WriteLine("Ellipse");
}
static void Main() {
Application.Run(new SelectItem());
}
}
ComboBox selected Item changed event 1
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());
}
}
ComboBox with color cell renderer
/*
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 MyComboBox
{
/// <summary>
/// Summary description for MyComboBox.
/// </summary>
public class MyComboBox : System.Windows.Forms.Form
{
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox comboBox2;
private System.Windows.Forms.Label label2;
ArrayList colorArray = new ArrayList() ;
ArrayList fontArray = new ArrayList() ;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public MyComboBox()
{
//
// 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.comboBox1 = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.comboBox2 = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// comboBox1
//
this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
this.comboBox1.ItemHeight = 25;
this.comboBox1.Location = new System.Drawing.Point(16, 40);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(264, 31);
this.comboBox1.TabIndex = 0;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.MyItemSelected);
this.comboBox1.MeasureItem += new System.Windows.Forms.MeasureItemEventHandler(this.comboBox1_MeasureItem);
this.comboBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.comboBox1_DrawItem);
//
// label1
//
this.label1.Location = new System.Drawing.Point(16, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 16);
this.label1.TabIndex = 1;
this.label1.Text = "Font Combo Box";
//
// comboBox2
//
this.comboBox2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox2.ItemHeight = 20;
this.comboBox2.Location = new System.Drawing.Point(16, 104);
this.comboBox2.Name = "comboBox2";
this.comboBox2.Size = new System.Drawing.Size(264, 26);
this.comboBox2.TabIndex = 0;
this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.MyItemSelected);
this.comboBox2.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.comboBox2_DrawItem);
//
// label2
//
this.label2.Location = new System.Drawing.Point(24, 80);
this.label2.Name = "label2";
this.label2.TabIndex = 2;
this.label2.Text = "Color Combo Box";
//
// MyComboBox
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(312, 157);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label2,
this.label1,
this.comboBox1,
this.comboBox2});
this.Name = "MyComboBox";
this.Text = "OwnerDraw ComboBox";
this.Load += new System.EventHandler(this.MyComboBox_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new MyComboBox());
}
private void MyComboBox_Load(object sender, System.EventArgs e)
{
// Fill an array with the different color you wish
// to display in the ComboBox
colorArray.Add(new SolidBrush(Color.Yellow));
colorArray.Add(new SolidBrush(Color.Black));
colorArray.Add(new SolidBrush(Color.Azure));
colorArray.Add(new SolidBrush(Color.Firebrick));
colorArray.Add(new SolidBrush(Color.DarkMagenta));
// Add blank items to the list, since the text we will display
// will be the name of the Color we are painting
comboBox2.Items.Add("");
comboBox2.Items.Add("");
comboBox2.Items.Add("");
comboBox2.Items.Add("");
comboBox2.Items.Add("");
// Fill an array with the different fonts that you will use to display
// items in the other comboBox
fontArray .Add(new Font("Ariel" , 15 , FontStyle.Bold ));
fontArray .Add(new Font("Courier" , 12 , FontStyle.Italic));
fontArray .Add(new Font("Veranda" , 14 , FontStyle.Bold));
fontArray .Add(new Font("System" , 10 , FontStyle.Strikeout));
fontArray .Add(new Font("Century SchoolBook" , 15 , FontStyle.Underline));
// Add the items that in the listBox
comboBox1.Items.Add("Washington");
comboBox1.Items.Add("Houston");
comboBox1.Items.Add("Phoenix");
comboBox1.Items.Add("Dallas");
comboBox1.Items.Add("London");
}
private void comboBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
// Override this function to draw items in the Font comboBox
// Get the Graphics Object (aka. CDC or Device Context Object )
// passed via the DrawItemEventArgs parameter
Graphics g = e.Graphics ;
// Get the bounding rectangle of the item currently being painted
Rectangle r = e.Bounds ;
Font fn = null ;
if ( e.Index >= 0 )
{
// Get the Font object, at the specifid index in the fontArray
fn = (Font)fontArray[e.Index];
// Get the text that we wish to display
string s = (string)comboBox1.Items[e.Index];
// Set the string format options
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
Console.WriteLine(e.State.ToString());
// Draw the rectangle
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black), 2 ), r );
if ( e.State == ( DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))
{
// if the item is not selected draw it with a different color
e.Graphics.FillRectangle(new SolidBrush(Color.White) , r);
e.Graphics.DrawString( s , fn , new SolidBrush(Color.Black), r ,sf);
e.DrawFocusRectangle();
}
else
{
// if the item is selected draw it with a different color
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue) , r);
e.Graphics.DrawString( s , fn , new SolidBrush(Color.Red), r ,sf);
e.DrawFocusRectangle();
}
}
}
private void comboBox2_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
// Override this function to draw items in the Color comboBox
// Get the Graphics Object (aka. CDC or Device Context Object )
// passed via the DrawItemEventArgs parameter
Graphics g = e.Graphics ;
// Get the bounding rectangle of the item currently being painted
Rectangle r = e.Bounds ;
if ( e.Index >= 0 )
{
Rectangle rd = r ;
rd.Width = 100 ;
Rectangle rt = r ;
r.Left = rd.Right ;
// Get the brush object, at the specifid index in the colorArray
SolidBrush b = (SolidBrush)colorArray[e.Index];
// Fill a portion of the rectangle with the selected brush
g.FillRectangle(b , rd);
// Set the string format options
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
Console.WriteLine(e.State.ToString());
// Draw the rectangle
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black), 2 ), r );
if ( e.State == ( DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))
{
// if the item is not selected draw it with a different color
e.Graphics.FillRectangle(new SolidBrush(Color.White) , r);
e.Graphics.DrawString( b.Color.Name, new Font("Ariel" , 8 , FontStyle.Bold ) , new SolidBrush(Color.Black), r ,sf);
e.DrawFocusRectangle();
}
else
{
// if the item is selected draw it with a different color
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue) , r);
e.Graphics.DrawString( b.Color.Name, new Font("Veranda" , 12 , FontStyle.Bold ) , new SolidBrush(Color.Red), r ,sf);
e.DrawFocusRectangle();
}
}
}
private void MyItemSelected(object sender, System.EventArgs e)
{
// UnBox the sender. Since both the ComboBox controls use the same
// events to handle the selection of item from the list
ComboBox cb = null ;
if ( sender.Equals(comboBox1))
cb = comboBox1;
else
cb = comboBox2;
// Get the index of the Item Selected
int x = cb.SelectedIndex ;
string str = "";
// Get the Text of the item selected
if ( sender.Equals(comboBox1))
{
str = "Item Selected is = " + (string)cb.Items[x];
}
else
{
SolidBrush br = (SolidBrush)colorArray[x];
str = "Color Selected is = " + br.Color.Name;
}
MessageBox.Show(str,"ComboBox Item");
}
private void comboBox1_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
{
// For the comboBox with OwnerDrawVariable property
// Display every second item with a height of 45
if ( e.Index%2 == 0 )
{
e.ItemHeight = 45 ;
e.ItemWidth = 20 ;
}
else
{
// Display all other items with a height of 25
e.ItemHeight = 25 ;
e.ItemWidth = 10 ;
}
}
}
}
ComboBox.zip( 65 k)

