Add Object based data to DataGrid

image_pdfimage_print


   

    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 = "&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&xit";
      this.menuItemExit.Click += new System.EventHandler(this.menuItemExit_Click);
      this.menuItemNewStudent.DefaultItem = true;
      this.menuItemNewStudent.Index = 0;
      this.menuItemNewStudent.Text = "&Make New Student";
      this.menuItemNewStudent.Click += new System.EventHandler(this.menuItemNewStudent_Click);
      this.menuItemOpen.Index = 2;
      this.menuItemOpen.Text = "&Open Student File";
      this.menuItemOpen.Click += new System.EventHandler(this.menuItemOpen_Click);
      this.menuItemSave.Index = 3;
      this.menuItemSave.Text = "&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 = "&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'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;
        }
    }


           
          


Control Enabled

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

class MainWindow : Form {
    private TextBox firstNameBox = new TextBox();
    private Button btnShowControls = new Button();

    public MainWindow() {
        this.Text = "Simple Controls";
        this.Width = 300;
        this.Height = 200;
        CenterToScreen();

        firstNameBox.Text = "Hello";
        firstNameBox.Size = new Size(150, 50);
        firstNameBox.Location = new Point(10, 10);
        this.Controls.Add(firstNameBox);

        btnShowControls.Text = "Click Me";
        btnShowControls.Size = new Size(90, 30);
        btnShowControls.Location = new Point(10, 70);
        btnShowControls.BackColor = Color.DodgerBlue;
        btnShowControls.Click += new EventHandler(btnShowControls_Clicked);
        this.Controls.Add(btnShowControls);
    }

    private void btnShowControls_Clicked(object sender, EventArgs e) {
        string ctrlInfo = "";
        foreach (Control c in this.Controls) {
            ctrlInfo += string.Format("Control: {0}
",c.ToString());
        }
        MessageBox.Show(ctrlInfo, "Controls on Form");
        DisableAllButtons();
    }

    private void DisableAllButtons() {
        foreach (Control c in this.Controls) {
            if (c is Button)
                ((Button)c).Enabled = false;
        }
    }
    public static void Main(string[] args) {
        Application.Run(new MainWindow());
    }
}

    


Control renderer Demo: CheckBox

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.Windows.Forms.VisualStyles;

public class Form1 : Form
{

      public Form1() {
            InitializeComponent();
            
      }

    private void ControlRenderer_Paint(object sender, PaintEventArgs e)
    {
      
        CheckBoxRenderer.DrawCheckBox(e.Graphics, new Point(10,10),
          new Rectangle(10,10,110,15), "Style checkbox", Font,false, CheckBoxState.CheckedNormal);
      
    }
    private void InitializeComponent()
    {
      this.SuspendLayout();
      // 
      // ControlRenderer
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(292, 266);
      this.Name = "ControlRenderer";
      this.Text = "ControlRenderer";
      this.Paint += new System.Windows.Forms.PaintEventHandler(this.ControlRenderer_Paint);
      this.ResumeLayout(false);

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

}



           
          


Add a Control Programmatically

image_pdfimage_print


   


using System;
using System.Windows.Forms;

public class DynamicCheckBox : System.Windows.Forms.Form {

    public DynamicCheckBox(){
    
        string[] foods = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"};

        int topPosition = 10;
        foreach (string food in foods)
        {
            // Create a new check box.
            CheckBox checkBox = new CheckBox();
            checkBox.Left = 10;
            checkBox.Top = topPosition;
            topPosition += 30;
            checkBox.Text = food;

            // Add the check box to the form.
            this.Controls.Add(checkBox);
        }
    }
    public static void Main(){
       Application.Run(new DynamicCheckBox());
    }
}
           
          


Change Image alignment inside a Control

image_pdfimage_print


   


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

  public class ButtonForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.Button btnImage;
    private System.Windows.Forms.Button btnStandard;

    // Hold the current text alignment
    ContentAlignment currAlignment = ContentAlignment.MiddleCenter;
    int currEnumPos = 0;
    
    public ButtonForm()
    {
      InitializeComponent();

      // Set btnStandard as default accept.
      this.AcceptButton = btnStandard;

      CenterToScreen();
    }
    private void InitializeComponent()
    {
      this.btnStandard = new System.Windows.Forms.Button();
      this.btnImage = new System.Windows.Forms.Button();
      this.SuspendLayout();
      // 
      // btnStandard
      // 
      this.btnStandard.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
      this.btnStandard.ForeColor = System.Drawing.SystemColors.ControlText;
      this.btnStandard.Location = new System.Drawing.Point(16, 80);
      this.btnStandard.Name = "btnStandard";
      this.btnStandard.Size = new System.Drawing.Size(312, 88);
      this.btnStandard.TabIndex = 2;
      this.btnStandard.Text = "Click to change the Image alignment";
      this.btnStandard.Click += new System.EventHandler(this.btnStandard_Click);
      // 
      // btnImage
      // 
      this.btnImage.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F, System.Drawing.FontStyle.Bold);
      this.btnImage.Image = new Bitmap("winter.jpg");
      this.btnImage.Location = new System.Drawing.Point(16, 192);
      this.btnImage.Name = "btnImage";
      this.btnImage.Size = new System.Drawing.Size(312, 72);
      this.btnImage.TabIndex = 3;
      this.btnImage.Text = "Image Button";
      this.btnImage.TextAlign = System.Drawing.ContentAlignment.TopCenter;
      // 
      // ButtonForm
      // 
      this.AcceptButton = this.btnStandard;
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(340, 269);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {this.btnImage,
                                     this.btnStandard,
                                    });
      this.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
      this.Name = "ButtonForm";
      this.Text = "Buttons";
      this.ResumeLayout(false);

    }
    
    protected void btnStandard_Click (object sender, System.EventArgs e)
    {      
      Array values = Enum.GetValues(currAlignment.GetType());
    
      currEnumPos++;
      if(currEnumPos >= values.Length)
        currEnumPos = 0;
      
      currAlignment = (ContentAlignment)ContentAlignment.Parse(currAlignment.GetType(), 
              values.GetValue(currEnumPos).ToString());

      btnImage.ImageAlign = currAlignment;
    }

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

           
          


Get all controls on a form window

image_pdfimage_print


   

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

    class MyForm : Form
  {
    private TextBox firstNameBox = new TextBox(); 
    private Button btnShowControls = new Button();
    
    MyForm()
    {
      this.Text = "Controls in the raw";

      // Add a new text box.
      firstNameBox.Text = "Chucky";
      firstNameBox.Size = new Size(150, 50);
      firstNameBox.Location = new Point(10, 10);
      this.Controls.Add(firstNameBox);

      // Add a new button.
      btnShowControls.Text = "Examine Controls collection";
      btnShowControls.Size = new Size(90, 90);
      btnShowControls.Location = new Point(10, 70);
      btnShowControls.Click += 
        new EventHandler(btnShowControls_Clicked);
      this.Controls.Add(btnShowControls);
      CenterToScreen();

    }
    protected void btnShowControls_Clicked(object sender, EventArgs e)
    {
      Control.ControlCollection coll = this.Controls;
      foreach(Control c in coll) {
        if(c != null)
          Console.WriteLine(c.Text, "Index numb: " + coll.GetChildIndex(c, false));   
      }
    }

        public static int Main(string[] args)
        {
      Application.Run(new MyForm());
      return 0;
        }
    }


           
          


Control style: resize and redraw

image_pdfimage_print


   


  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.Button btnGetStyles;
    private System.ComponentModel.Container components;

    public Form1()
    {
      InitializeComponent();
      SetStyle(ControlStyles.ResizeRedraw, true);
    }

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

    private void InitializeComponent()
    {
      this.btnGetStyles = new System.Windows.Forms.Button();
      this.btnGetStyles.Location = new System.Drawing.Point(24, 64);
      this.btnGetStyles.Size = new System.Drawing.Size(160, 23);
      this.btnGetStyles.TabIndex = 0;
      this.btnGetStyles.Text = "Get Form Styles";
      this.btnGetStyles.Click += new System.EventHandler(this.btnGetStyles_Click);
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(211, 104);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {this.btnGetStyles});
      this.Text = "A Form with Style!";

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

    private void btnGetStyles_Click(object sender, System.EventArgs e)
    {
      MessageBox.Show(GetStyle(ControlStyles.ResizeRedraw).ToString(), 
        "Do you have ResizeRedraw?");
    }

  }