Color Scroll Dialog Box

using System;
using System.Drawing;
using System.Windows.Forms;

class ColorScrollDialogBox: Form
{
Label[] alabelName = new Label[3];
Label[] alabelValue = new Label[3];
VScrollBar[] avscroll = new VScrollBar[3];

public event EventHandler Changed;

public ColorScrollDialogBox()
{
Color[] acolor = { Color.Red, Color.Green, Color.Blue };

for (int i = 0; i < 3; i++) { alabelName[i] = new Label(); alabelName[i].Parent = this; alabelName[i].ForeColor = acolor[i]; alabelName[i].Text = "&" + acolor[i].ToKnownColor(); alabelName[i].TextAlign = ContentAlignment.MiddleCenter; avscroll[i] = new VScrollBar(); avscroll[i].Parent = this; 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 = this; alabelValue[i].TextAlign = ContentAlignment.MiddleCenter; } OnResize(EventArgs.Empty); } public Color Color { get { return Color.FromArgb(avscroll[0].Value, avscroll[1].Value, avscroll[2].Value); } set { avscroll[0].Value = value.R; avscroll[1].Value = value.G; avscroll[2].Value = value.B; } } protected override void OnResize(EventArgs ea) { base.OnResize(ea); int cx = ClientSize.Width; int cy = ClientSize.Height; int cyFont = Font.Height; for (int i = 0; i < 3; i++) { alabelName[i].Location = new Point(i * cx / 3, cyFont / 2); alabelName[i].Size = new Size(cx / 3, cyFont); avscroll[i].Location = new Point((4 * i + 1) * cx / 12,2 * cyFont); avscroll[i].Size = new Size(cx / 6, cy - 4 * cyFont); alabelValue[i].Location = new Point(i * cx / 3,cy - 3 * cyFont / 2); alabelValue[i].Size = new Size(cx / 3, 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(); if (Changed != null) Changed(this, new EventArgs()); } } class ModelessColorScroll: Form { public static void Main() { Application.Run(new ModelessColorScroll()); } public ModelessColorScroll() { ColorScrollDialogBox dlg = new ColorScrollDialogBox(); dlg.Owner = this; dlg.Color = BackColor; dlg.Changed += new EventHandler(ColorScrollOnChanged); dlg.Show(); } void ColorScrollOnChanged(object obj, EventArgs ea) { ColorScrollDialogBox dlg = (ColorScrollDialogBox) obj; BackColor = dlg.Color; } } [/csharp]

Color Fill dialog

using System;
using System.Drawing;
using System.Windows.Forms;

class ColorFillDialogBox: Form
{
GroupBox grpbox = new GroupBox();
CheckBox chkbox = new CheckBox();

public ColorFillDialogBox()
{
string[] astrColor = { “Black”, “Blue”, “Green”, “Cyan”,
“Red”, “Magenta”, “Yellow”, “White”};

grpbox.Parent = this;
grpbox.Text = “Color”;
grpbox.Location = new Point(8, 8);
grpbox.Size = new Size(96, 12 * (astrColor.Length + 1));

for (int i = 0; i < astrColor.Length; i++) { RadioButton radiobtn = new RadioButton(); radiobtn.Parent = grpbox; radiobtn.Text = astrColor[i]; radiobtn.Location = new Point(8, 12 * (i + 1)); radiobtn.Size = new Size(80, 10); } chkbox.Parent = this; chkbox.Text = "Fill Ellipse"; chkbox.Location = new Point(8, grpbox.Bottom + 4); chkbox.Size = new Size(80, 10); Button btn = new Button(); btn.Parent = this; btn.Text = "OK"; btn.Location = new Point(8, chkbox.Bottom + 4); btn.Size = new Size(40, 16); btn.DialogResult = DialogResult.OK; AcceptButton = btn; btn = new Button(); btn.Parent = this; btn.Text = "Cancel"; btn.Location = new Point(64, chkbox.Bottom + 4); btn.Size = new Size(40, 16); btn.DialogResult = DialogResult.Cancel; CancelButton = btn; ClientSize = new Size(112, btn.Bottom + 8); AutoScaleBaseSize = new Size(4, 8); } public Color Color { get { for (int i = 0; i < grpbox.Controls.Count; i++) { RadioButton radiobtn = (RadioButton) grpbox.Controls[i]; if (radiobtn.Checked) return Color.FromName(radiobtn.Text); } return Color.Black; } set { for (int i = 0; i < grpbox.Controls.Count; i++) { RadioButton radiobtn = (RadioButton) grpbox.Controls[i]; if (value == Color.FromName(radiobtn.Text)) { radiobtn.Checked = true; break; } } } } public bool Fill { get { return chkbox.Checked; } set { chkbox.Checked = value; } } } class DrawOrFillEllipse: Form { Color colorEllipse = Color.Red; bool bFillEllipse = false; public static void Main() { Application.Run(new DrawOrFillEllipse()); } public DrawOrFillEllipse() { ResizeRedraw = true; Menu = new MainMenu(); Menu.MenuItems.Add("&Options"); Menu.MenuItems[0].MenuItems.Add("&Color...", new EventHandler(MenuColorOnClick)); } void MenuColorOnClick(object obj, EventArgs ea) { ColorFillDialogBox dlg = new ColorFillDialogBox(); dlg.Color = colorEllipse; dlg.Fill = bFillEllipse; if (dlg.ShowDialog() == DialogResult.OK) { colorEllipse = dlg.Color; bFillEllipse = dlg.Fill; Invalidate(); } } protected override void OnPaint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; Rectangle rect = new Rectangle(0, 0, 50, 50); if(bFillEllipse) grfx.FillEllipse(new SolidBrush(colorEllipse), rect); else grfx.DrawEllipse(new Pen(colorEllipse), rect); } } [/csharp]

A dialog by user defined property

   
 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

class MainClass {
    public static void Main() {
        Phone frm = new Phone();
        while (true) {
            frm.ShowDialog();
            if (frm.DialogResult == DialogResult.OK) {
                Console.WriteLine(frm.PhoneNumber);
                if (frm.PhoneNumber.Length == 8 | frm.PhoneNumber.Length == 12) {
                    break;
                } else {
                    MessageBox.Show("Phone number was not formatted correctly. Please correct entry.");
                }
            } else if (frm.DialogResult == DialogResult.Cancel) {
                Console.WriteLine("Form was canceled.");
                break;
            }
        }
        frm.Close();
    }
}
class Phone : Form {
    private System.Windows.Forms.TextBox textBox1  = new System.Windows.Forms.TextBox();
    private System.Windows.Forms.Label label1 = new System.Windows.Forms.Label() ;
    private System.Windows.Forms.Button btnOK = new System.Windows.Forms.Button();
    private System.Windows.Forms.Button btnCancel = new System.Windows.Forms.Button();

    public Phone() {
        this.SuspendLayout();

        this.textBox1.Location = new System.Drawing.Point(122, 21);
        this.textBox1.Margin = new System.Windows.Forms.Padding(1, 3, 3, 3);
        this.textBox1.Size = new System.Drawing.Size(115, 20);

        this.label1.AutoSize = true;
        this.label1.Location = new System.Drawing.Point(10, 26);
        this.label1.Margin = new System.Windows.Forms.Padding(3, 3, 1, 3);
        this.label1.Size = new System.Drawing.Size(110, 14);
        this.label1.Text = "Enter phone number:";
        this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;

        this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
        this.btnOK.Location = new System.Drawing.Point(36, 65);
        this.btnOK.Text = "OK";

        this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
        this.btnCancel.Location = new System.Drawing.Point(132, 65);
        this.btnCancel.Text = "Cancel";
        this.ClientSize = new System.Drawing.Size(270, 107);
        this.Controls.Add(this.btnCancel);
        this.Controls.Add(this.btnOK);
        this.Controls.Add(this.label1);
        this.Controls.Add(this.textBox1);
        this.ResumeLayout(false);
        this.PerformLayout();
        btnOK.DialogResult = DialogResult.OK;
        btnCancel.DialogResult = DialogResult.Cancel;
    }
    public string PhoneNumber {
        get { return textBox1.Text; }
        set { textBox1.Text = value; }
    }
}

    


DateTimePicker Format: Short, Time, default and Custom Format


   


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.DateTimePicker dateTimePicker1;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.Label label2;
  private System.Windows.Forms.Label label3;
  private System.Windows.Forms.Label label4;
  private System.Windows.Forms.DateTimePicker dateTimePicker2;
  private System.Windows.Forms.DateTimePicker dateTimePicker3;
  private System.Windows.Forms.DateTimePicker dateTimePicker4;

  public Form1() {
        InitializeComponent();
  }

  private void InitializeComponent()
  {
    this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
    this.label1 = new System.Windows.Forms.Label();
    this.label2 = new System.Windows.Forms.Label();
    this.label3 = new System.Windows.Forms.Label();
    this.label4 = new System.Windows.Forms.Label();
    this.dateTimePicker2 = new System.Windows.Forms.DateTimePicker();
    this.dateTimePicker3 = new System.Windows.Forms.DateTimePicker();
    this.dateTimePicker4 = new System.Windows.Forms.DateTimePicker();
    this.SuspendLayout();
    // 
    // dateTimePicker1
    // 
    this.dateTimePicker1.Location = new System.Drawing.Point(92, 15);
    this.dateTimePicker1.Name = "dateTimePicker1";
    this.dateTimePicker1.Size = new System.Drawing.Size(200, 21);
    this.dateTimePicker1.TabIndex = 0;
    // 
    // label1
    // 
    this.label1.AutoSize = true;
    this.label1.Location = new System.Drawing.Point(12, 19);
    this.label1.Name = "label1";
    this.label1.Size = new System.Drawing.Size(30, 13);
    this.label1.TabIndex = 2;
    this.label1.Text = "Long:";
    // 
    // label2
    // 
    this.label2.AutoSize = true;
    this.label2.Location = new System.Drawing.Point(12, 54);
    this.label2.Name = "label2";
    this.label2.Size = new System.Drawing.Size(33, 13);
    this.label2.TabIndex = 3;
    this.label2.Text = "Short:";
    // 
    // label3
    // 
    this.label3.AutoSize = true;
    this.label3.Location = new System.Drawing.Point(12, 92);
    this.label3.Name = "label3";
    this.label3.Size = new System.Drawing.Size(29, 13);
    this.label3.TabIndex = 4;
    this.label3.Text = "Time:";
    // 
    // label4
    // 
    this.label4.AutoSize = true;
    this.label4.Location = new System.Drawing.Point(12, 128);
    this.label4.Name = "label4";
    this.label4.Size = new System.Drawing.Size(64, 13);
    this.label4.TabIndex = 5;
    this.label4.Text = "Custom ISO:";
    // 
    // dateTimePicker2
    // 
    this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Short;
    this.dateTimePicker2.Location = new System.Drawing.Point(92, 50);
    this.dateTimePicker2.Name = "dateTimePicker2";
    this.dateTimePicker2.Size = new System.Drawing.Size(200, 21);
    this.dateTimePicker2.TabIndex = 6;
    // 
    // dateTimePicker3
    // 
    this.dateTimePicker3.Format = System.Windows.Forms.DateTimePickerFormat.Time;
    this.dateTimePicker3.Location = new System.Drawing.Point(92, 88);
    this.dateTimePicker3.Name = "dateTimePicker3";
    this.dateTimePicker3.Size = new System.Drawing.Size(200, 21);
    this.dateTimePicker3.TabIndex = 7;
    // 
    // dateTimePicker4
    // 
    this.dateTimePicker4.CustomFormat = "yyyy-mm-dd";
    this.dateTimePicker4.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
    this.dateTimePicker4.Location = new System.Drawing.Point(92, 124);
    this.dateTimePicker4.Name = "dateTimePicker4";
    this.dateTimePicker4.Size = new System.Drawing.Size(200, 21);
    this.dateTimePicker4.TabIndex = 8;
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(348, 192);
    this.Controls.Add(this.dateTimePicker4);
    this.Controls.Add(this.dateTimePicker3);
    this.Controls.Add(this.dateTimePicker2);
    this.Controls.Add(this.label4);
    this.Controls.Add(this.label3);
    this.Controls.Add(this.label2);
    this.Controls.Add(this.label1);
    this.Controls.Add(this.dateTimePicker1);
    this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    this.Name = "Form1";
    this.Text = "Date Controls";
    this.ResumeLayout(false);
    this.PerformLayout();

  }

  [STAThread]
  static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }

}


           
          


DateTimePicker Value changed event (Selected event)


   


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.DateTimePicker dateTimePickerDropOff;
    private System.Windows.Forms.Label outputLabel;
    private System.Windows.Forms.Label deliveryLabel;
    private System.Windows.Forms.Label dropOffLabel;
    public Form1() {
        InitializeComponent();
        dateTimePickerDropOff.MinDate = DateTime.Today;
        dateTimePickerDropOff.MaxDate = DateTime.Today.AddYears( 1 );
  }

   private void dateTimePickerDropOff_ValueChanged( object sender, EventArgs e )
   {
      DateTime dropOffDate = dateTimePickerDropOff.Value;

      if ( dropOffDate.DayOfWeek == DayOfWeek.Friday ||
         dropOffDate.DayOfWeek == DayOfWeek.Saturday ||
         dropOffDate.DayOfWeek == DayOfWeek.Sunday )

         outputLabel.Text = dropOffDate.AddDays( 3 ).ToLongDateString();
      else
         outputLabel.Text = dropOffDate.AddDays( 2 ).ToLongDateString();
   }

   private void InitializeComponent()
   {
      this.dateTimePickerDropOff = new System.Windows.Forms.DateTimePicker();
      this.outputLabel = new System.Windows.Forms.Label();
      this.deliveryLabel = new System.Windows.Forms.Label();
      this.dropOffLabel = new System.Windows.Forms.Label();
      this.SuspendLayout();
      // 
      // dateTimePickerDropOff
      // 
      this.dateTimePickerDropOff.Location = new System.Drawing.Point(31, 39);
      this.dateTimePickerDropOff.Name = "dateTimePickerDropOff";
      this.dateTimePickerDropOff.Size = new System.Drawing.Size(200, 20);
      this.dateTimePickerDropOff.TabIndex = 0;
      this.dateTimePickerDropOff.ValueChanged += new System.EventHandler(this.dateTimePickerDropOff_ValueChanged);
      // 
      // outputLabel
      // 
      this.outputLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
      this.outputLabel.Location = new System.Drawing.Point(31, 108);
      this.outputLabel.Name = "outputLabel";
      this.outputLabel.Size = new System.Drawing.Size(200, 23);
      this.outputLabel.TabIndex = 1;
      // 
      // deliveryLabel
      // 
      this.deliveryLabel.AutoSize = true;
      this.deliveryLabel.Location = new System.Drawing.Point(30, 95);
      this.deliveryLabel.Name = "deliveryLabel";
      this.deliveryLabel.Size = new System.Drawing.Size(119, 13);
      this.deliveryLabel.TabIndex = 2;
      // 
      // dropOffLabel
      // 
      this.dropOffLabel.AutoSize = true;
      this.dropOffLabel.Location = new System.Drawing.Point(30, 23);
      this.dropOffLabel.Name = "dropOffLabel";
      this.dropOffLabel.Size = new System.Drawing.Size(72, 13);
      this.dropOffLabel.TabIndex = 3;
      this.dropOffLabel.Text = "Drop Off Date:";
      // 
      // DateTimePickerForm
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(262, 235);
      this.Controls.Add(this.dropOffLabel);
      this.Controls.Add(this.deliveryLabel);
      this.Controls.Add(this.outputLabel);
      this.Controls.Add(this.dateTimePickerDropOff);
      this.Name = "DateTimePickerForm";
      this.Text = "DateTimePickerTest";
      this.ResumeLayout(false);
      this.PerformLayout();
 
    }
   [STAThread]
   static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }

}


           
          


Set DateTimePicker Min Date and Max Date


   


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.DateTimePicker dateTimePickerDropOff;
    private System.Windows.Forms.Label outputLabel;
    private System.Windows.Forms.Label deliveryLabel;
    private System.Windows.Forms.Label dropOffLabel;
    public Form1() {
        InitializeComponent();
        dateTimePickerDropOff.MinDate = DateTime.Today;
        dateTimePickerDropOff.MaxDate = DateTime.Today.AddYears( 1 );
  }

   private void dateTimePickerDropOff_ValueChanged( object sender, EventArgs e )
   {
      DateTime dropOffDate = dateTimePickerDropOff.Value;

      if ( dropOffDate.DayOfWeek == DayOfWeek.Friday ||
         dropOffDate.DayOfWeek == DayOfWeek.Saturday ||
         dropOffDate.DayOfWeek == DayOfWeek.Sunday )

         outputLabel.Text = dropOffDate.AddDays( 3 ).ToLongDateString();
      else
         outputLabel.Text = dropOffDate.AddDays( 2 ).ToLongDateString();
   }

   private void InitializeComponent()
   {
      this.dateTimePickerDropOff = new System.Windows.Forms.DateTimePicker();
      this.outputLabel = new System.Windows.Forms.Label();
      this.deliveryLabel = new System.Windows.Forms.Label();
      this.dropOffLabel = new System.Windows.Forms.Label();
      this.SuspendLayout();
      // 
      // dateTimePickerDropOff
      // 
      this.dateTimePickerDropOff.Location = new System.Drawing.Point(31, 39);
      this.dateTimePickerDropOff.Name = "dateTimePickerDropOff";
      this.dateTimePickerDropOff.Size = new System.Drawing.Size(200, 20);
      this.dateTimePickerDropOff.TabIndex = 0;
      this.dateTimePickerDropOff.ValueChanged += new System.EventHandler(this.dateTimePickerDropOff_ValueChanged);
      // 
      // outputLabel
      // 
      this.outputLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
      this.outputLabel.Location = new System.Drawing.Point(31, 108);
      this.outputLabel.Name = "outputLabel";
      this.outputLabel.Size = new System.Drawing.Size(200, 23);
      this.outputLabel.TabIndex = 1;
      // 
      // deliveryLabel
      // 
      this.deliveryLabel.AutoSize = true;
      this.deliveryLabel.Location = new System.Drawing.Point(30, 95);
      this.deliveryLabel.Name = "deliveryLabel";
      this.deliveryLabel.Size = new System.Drawing.Size(119, 13);
      this.deliveryLabel.TabIndex = 2;
      // 
      // dropOffLabel
      // 
      this.dropOffLabel.AutoSize = true;
      this.dropOffLabel.Location = new System.Drawing.Point(30, 23);
      this.dropOffLabel.Name = "dropOffLabel";
      this.dropOffLabel.Size = new System.Drawing.Size(72, 13);
      this.dropOffLabel.TabIndex = 3;
      this.dropOffLabel.Text = "Drop Off Date:";
      // 
      // DateTimePickerForm
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(262, 235);
      this.Controls.Add(this.dropOffLabel);
      this.Controls.Add(this.deliveryLabel);
      this.Controls.Add(this.outputLabel);
      this.Controls.Add(this.dateTimePickerDropOff);
      this.Name = "DateTimePickerForm";
      this.Text = "DateTimePickerTest";
      this.ResumeLayout(false);
      this.PerformLayout();
 
    }
   [STAThread]
   static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }

}


           
          


Add Object based data to DataGrid


   

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
  using System.IO;
  using System.Runtime.Serialization.Formatters.Binary;

  public class mainForm : System.Windows.Forms.Form
    {
    private System.Windows.Forms.MenuItem menuItemClear;
    private System.Windows.Forms.MenuItem menuItemOpen;
    private System.Windows.Forms.MenuItem menuItemSave;
    private System.Windows.Forms.MenuItem menuItemExit;
    private System.Windows.Forms.MenuItem menuItemNewStudent;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.Windows.Forms.MainMenu mainMenu;
    private System.Windows.Forms.DataGrid studentDataGrid;

    private ArrayList arTheStudents;

        public mainForm()
        {
            InitializeComponent();
      CenterToScreen();
      
      arTheStudents = new ArrayList();
      arTheStudents.Add(new Student("A", "A1", "A2"));
      arTheStudents.Add(new Student("B", "B1", "B2"));
      arTheStudents.Add(new Student("C", "C1", "C2"));
      UpdateGrid();
        }
    private void InitializeComponent()
    {
      this.menuItem1 = new System.Windows.Forms.MenuItem();
      this.studentDataGrid = new System.Windows.Forms.DataGrid();
      this.menuItemExit = new System.Windows.Forms.MenuItem();
      this.menuItemNewStudent = new System.Windows.Forms.MenuItem();
      this.menuItemOpen = new System.Windows.Forms.MenuItem();
      this.menuItemSave = new System.Windows.Forms.MenuItem();
      this.mainMenu = new System.Windows.Forms.MainMenu();
      this.menuItemClear = new System.Windows.Forms.MenuItem();
      ((System.ComponentModel.ISupportInitialize)(this.studentDataGrid)).BeginInit();
      this.menuItem1.Index = 0;
      this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {this.menuItemNewStudent,
                                            this.menuItemClear,
                                            this.menuItemOpen,
                                            this.menuItemSave,
                                            this.menuItemExit});
      this.menuItem1.Text = "&amp;File";
      this.studentDataGrid.AlternatingBackColor = System.Drawing.Color.White;
      this.studentDataGrid.BackColor = System.Drawing.Color.White;
      this.studentDataGrid.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
      this.studentDataGrid.CaptionBackColor = System.Drawing.Color.Teal;
      this.studentDataGrid.CaptionFont = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
      this.studentDataGrid.CaptionForeColor = System.Drawing.Color.White;
      this.studentDataGrid.CaptionText = "Students";
      this.studentDataGrid.DataMember = "";
      this.studentDataGrid.FlatMode = true;
      this.studentDataGrid.Font = new System.Drawing.Font("Tahoma", 8F);
      this.studentDataGrid.ForeColor = System.Drawing.Color.Black;
      this.studentDataGrid.GridLineColor = System.Drawing.Color.Silver;
      this.studentDataGrid.HeaderBackColor = System.Drawing.Color.Black;
      this.studentDataGrid.HeaderFont = new System.Drawing.Font("Tahoma", 8F);
      this.studentDataGrid.HeaderForeColor = System.Drawing.Color.White;
      this.studentDataGrid.LinkColor = System.Drawing.Color.Purple;
      this.studentDataGrid.LinkHoverColor = System.Drawing.Color.Fuchsia;
      this.studentDataGrid.Location = new System.Drawing.Point(8, 40);
      this.studentDataGrid.ParentRowsBackColor = System.Drawing.Color.Gray;
      this.studentDataGrid.ParentRowsForeColor = System.Drawing.Color.White;
      this.studentDataGrid.SelectionBackColor = System.Drawing.Color.Maroon;
      this.studentDataGrid.SelectionForeColor = System.Drawing.Color.White;
      this.studentDataGrid.Size = new System.Drawing.Size(416, 144);
      this.studentDataGrid.TabIndex = 0;
      this.menuItemExit.Index = 4;
      this.menuItemExit.Text = "E&amp;xit";
      this.menuItemExit.Click += new System.EventHandler(this.menuItemExit_Click);
      this.menuItemNewStudent.DefaultItem = true;
      this.menuItemNewStudent.Index = 0;
      this.menuItemNewStudent.Text = "&amp;Make New Student";
      this.menuItemNewStudent.Click += new System.EventHandler(this.menuItemNewStudent_Click);
      this.menuItemOpen.Index = 2;
      this.menuItemOpen.Text = "&amp;Open Student File";
      this.menuItemOpen.Click += new System.EventHandler(this.menuItemOpen_Click);
      this.menuItemSave.Index = 3;
      this.menuItemSave.Text = "&amp;Save Student File";
      this.menuItemSave.Click += new System.EventHandler(this.menuItemSave_Click);
      this.mainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {this.menuItem1});
      this.menuItemClear.Index = 1;
      this.menuItemClear.Text = "&amp;Clear All Students";
      this.menuItemClear.Click += new System.EventHandler(this.menuItem2_Click);
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
      this.ClientSize = new System.Drawing.Size(434, 195);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {this.studentDataGrid});
      this.Menu = this.mainMenu;
      this.Text = "Student Logger Application";
      ((System.ComponentModel.ISupportInitialize)(this.studentDataGrid)).EndInit();

    }
    
    protected void menuItem2_Click (object sender, System.EventArgs e)
    {
      arTheStudents.Clear();
      UpdateGrid();
    }

    protected void menuItemExit_Click (object sender, System.EventArgs e)
    {
      Application.Exit();
    }

    protected void menuItemSave_Click (object sender, System.EventArgs e)
    {
      // Configure look and feel of save dlg.
      SaveFileDialog mySaveFileDialog = new SaveFileDialog();
      mySaveFileDialog.InitialDirectory = ".";
      mySaveFileDialog.Filter = "student files (*.student)|*.student|All files (*.*)|*.*"  ;
      mySaveFileDialog.FilterIndex = 1 ;
      mySaveFileDialog.RestoreDirectory = true ;
      mySaveFileDialog.FileName = "studentDoc";
      
      if(mySaveFileDialog.ShowDialog() == DialogResult.OK)
      {          
        Stream myStream = null;
        if((myStream = mySaveFileDialog.OpenFile()) != null)
        {
          BinaryFormatter myBinaryFormat = new BinaryFormatter();
          myBinaryFormat.Serialize(myStream, arTheStudents);
          myStream.Close();
        }  
      }
    }

    protected void menuItemOpen_Click (object sender, System.EventArgs e)
    {
      OpenFileDialog myOpenFileDialog = new OpenFileDialog();
      myOpenFileDialog.InitialDirectory = ".";
      myOpenFileDialog.Filter = "student files (*.student)|*.student|All files (*.*)|*.*"  ;
      myOpenFileDialog.FilterIndex = 1 ;
      myOpenFileDialog.RestoreDirectory = true ;

      if(myOpenFileDialog.ShowDialog() == DialogResult.OK)
      {
        arTheStudents.Clear();
        Stream myStream = null;
        if((myStream = myOpenFileDialog.OpenFile()) != null)
        {          
          BinaryFormatter myBinaryFormat = new BinaryFormatter();
          arTheStudents = (ArrayList)myBinaryFormat.Deserialize(myStream);
          myStream.Close();
          UpdateGrid();
        }
      }
    }

    protected void menuItemNewStudent_Click (object sender, System.EventArgs e)
    {
      AddStudentDlg d = new AddStudentDlg();
      if(d.ShowDialog() == DialogResult.OK)
      {
        arTheStudents.Add(d.theStudent);
        UpdateGrid();
      }
    }

        public static void Main(string[] args) 
        {
            Application.Run(new mainForm());
        }

    private void UpdateGrid()
    {
      if(arTheStudents != null)
      {
        DataTable inventory = new DataTable("StudentList");
        
        // Create DataColumn objects.
        DataColumn firstName = new DataColumn("First Name");
        DataColumn lastName = new DataColumn("Last Name");
        DataColumn from = new DataColumn("From");
        
        // Add columns to data table.
        inventory.Columns.Add(lastName);
        inventory.Columns.Add(firstName);
        inventory.Columns.Add(from);

        // Iterate over the array list to make rows.
        foreach(Student c in arTheStudents)
        {
          DataRow newRow;
          newRow = inventory.NewRow();
          newRow["Last Name"] = c.lastName;
          newRow["First Name"] = c.firstName;
          newRow["From"] = c.from;
          inventory.Rows.Add(newRow);
        }

        // Now bind this data table to the grid.
        studentDataGrid.DataSource = inventory;
      }
    }
    }



    public class AddStudentDlg : System.Windows.Forms.Form
    {
        private System.ComponentModel.Container components;
    private System.Windows.Forms.ListBox listColor;
    private System.Windows.Forms.ListBox listMake;
    private System.Windows.Forms.TextBox txtName;
    private System.Windows.Forms.Label label3;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Button btnCancel;
    private System.Windows.Forms.Button btnOK;

    // Make public for easy access
    public Student theStudent = null;

        public AddStudentDlg()
        {
            InitializeComponent();
        }

    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null) 
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }


        private void InitializeComponent()
    {
      this.components = new System.ComponentModel.Container ();
      this.label1 = new System.Windows.Forms.Label ();
      this.label3 = new System.Windows.Forms.Label ();
      this.btnOK = new System.Windows.Forms.Button ();
      this.label2 = new System.Windows.Forms.Label ();
      this.listColor = new System.Windows.Forms.ListBox ();
      this.btnCancel = new System.Windows.Forms.Button ();
      this.listMake = new System.Windows.Forms.ListBox ();
      this.txtName = new System.Windows.Forms.TextBox ();

      label1.Location = new System.Drawing.Point (8, 24);
      label1.Text = "First Name";
      label1.Size = new System.Drawing.Size (88, 24);
      label1.Font = new System.Drawing.Font ("Microsoft Sans Serif", 10, System.Drawing.FontStyle.Bold);
      label1.TabIndex = 2;
      label3.Location = new System.Drawing.Point (8, 104);
      label3.Text = "Color";
      label3.Size = new System.Drawing.Size (80, 24);
      label3.Font = new System.Drawing.Font ("Microsoft Sans Serif", 10, System.Drawing.FontStyle.Bold);
      label3.TabIndex = 4;
      btnOK.Location = new System.Drawing.Point (24, 144);
      btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
      btnOK.Size = new System.Drawing.Size (104, 24);
      btnOK.TabIndex = 0;
      btnOK.Text = "OK";
      btnOK.Click += new System.EventHandler (this.btnOK_Click);
      label2.Location = new System.Drawing.Point (8, 64);
      label2.Text = "Make";
      label2.Size = new System.Drawing.Size (88, 24);
      label2.Font = new System.Drawing.Font ("Microsoft Sans Serif", 10, System.Drawing.FontStyle.Bold);
      label2.TabIndex = 3;
      listColor.Location = new System.Drawing.Point (112, 96);
      listColor.Size = new System.Drawing.Size (200, 30);
      listColor.TabIndex = 7;
      listColor.Items.AddRange(new object[6] {"A", "B", "C", "D", "E", "F"});
      btnCancel.Location = new System.Drawing.Point (184, 144);
      btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
      btnCancel.Size = new System.Drawing.Size (112, 24);
      btnCancel.TabIndex = 1;
      btnCancel.Text = "Cancel";
      listMake.Location = new System.Drawing.Point (112, 48);
      listMake.Size = new System.Drawing.Size (200, 30);
      listMake.TabIndex = 6;
      listMake.Items.AddRange(new object[3] {"a", "b", "c"});
      txtName.Location = new System.Drawing.Point (112, 16);
      txtName.TabIndex = 5;
      txtName.Size = new System.Drawing.Size (200, 20);
      this.Text = "Add Student Dialog";
      this.MaximizeBox = false;
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
      this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
      this.ControlBox = false;
      this.MinimizeBox = false;
      this.ClientSize = new System.Drawing.Size (322, 183);
      this.Controls.Add (this.listColor);
      this.Controls.Add (this.listMake);
      this.Controls.Add (this.txtName);
      this.Controls.Add (this.label3);
      this.Controls.Add (this.label2);
      this.Controls.Add (this.label1);
      this.Controls.Add (this.btnCancel);
      this.Controls.Add (this.btnOK);
    }

    protected void btnOK_Click (object sender, System.EventArgs e)
    {
      theStudent = new Student(txtName.Text, listMake.Text, listColor.Text);
    }
    }


  [Serializable]  // Don&#039;t forget this!
    public class Student
    {
    // Make public for eazy access...
    public string lastName, firstName, from;

        public Student(string lastName, string firstName, string from)
        {
      this.lastName = lastName;
      this.from = from;
      this.firstName = firstName;
        }
    }