Load cursor file(*.cur)

image_pdfimage_print
   
 

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());
    }
}

    


Set form window cursor

image_pdfimage_print
   


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

image_pdfimage_print
   


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

image_pdfimage_print
   

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

image_pdfimage_print
   


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

image_pdfimage_print



   

/*
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)