Calculation with DataGridView : DataGridView « GUI Windows Forms « C# / CSharp Tutorial






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


   class SimpleSpreadForm : Form
   {
      public SimpleSpreadForm()
      {
         InitializeComponent();
         m_Grid.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;
      }

      private void OnFormLoad(object sender, EventArgs e)
      {
         int start = (int)'A';
         for (int i = 0; i < 26; i++)
         {
            string colName = ((char)(i + start)).ToString();
            int index = m_Grid.Columns.Add(colName, colName);
            m_Grid.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            m_Grid.Columns[i].Width = 75;
         }
         for (int i = 0; i < 50; i++)
         {
            m_Grid.Rows.Add();
         }
      }

      private void OnColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
      {
         m_Grid.ClearSelection();
         foreach (DataGridViewRow row in m_Grid.Rows)
         {
            row.Cells[e.ColumnIndex].Selected = true;
         }
      }

      private void OnRowAdded(object sender, DataGridViewRowsAddedEventArgs e)
      {
         m_Grid.Rows[e.RowIndex].HeaderCell.Value = e.RowIndex.ToString();
      }

      private void OnSumCells(object sender, EventArgs e)
      {
         DataGridViewSelectedCellCollection selCells = m_Grid.SelectedCells;
         if (selCells.Count < 2)
            return;

         Dictionary<int, int> rowSum = new Dictionary<int, int>();
         Dictionary<int, int> colSum = new Dictionary<int, int>();

         foreach (DataGridViewCell cell in selCells)
         {
            if (!rowSum.ContainsKey(cell.RowIndex))
            {
               if (cell.Value != null && cell.Value.ToString() != string.Empty)
               {
                  rowSum[cell.RowIndex] = int.Parse((string)cell.Value);
               }
            }
         }

      }
      private void InitializeComponent()
      {
         this.m_Grid = new System.Windows.Forms.DataGridView();
         this.toolStrip1 = new System.Windows.Forms.ToolStrip();
         this.m_SumToolStripButton = new System.Windows.Forms.ToolStripButton();
         ((System.ComponentModel.ISupportInitialize)(this.m_Grid)).BeginInit();
         this.toolStrip1.SuspendLayout();
         this.SuspendLayout();
         // 
         // m_Grid
         // 
         this.m_Grid.Dock = System.Windows.Forms.DockStyle.Fill;
         this.m_Grid.Location = new System.Drawing.Point(0, 25);
         this.m_Grid.Name = "m_Grid";
         this.m_Grid.Size = new System.Drawing.Size(727, 467);
         this.m_Grid.TabIndex = 0;
         this.m_Grid.Text = "dataGridView1";
         this.m_Grid.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.OnColumnHeaderMouseClick);
         this.m_Grid.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.OnRowAdded);
         // 
         // toolStrip1
         // 
         this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.m_SumToolStripButton});
         this.toolStrip1.Location = new System.Drawing.Point(0, 0);
         this.toolStrip1.Name = "toolStrip1";
         this.toolStrip1.Size = new System.Drawing.Size(727, 25);
         this.toolStrip1.TabIndex = 1;
         this.toolStrip1.Text = "toolStrip1";
         // 
         // m_SumToolStripButton
         // 
         this.m_SumToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
         this.m_SumToolStripButton.Name = "m_SumToolStripButton";
         this.m_SumToolStripButton.Text = "Sum";
         this.m_SumToolStripButton.Click += new System.EventHandler(this.OnSumCells);
         // 
         // SimpleSpreadForm
         // 
         this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
         this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
         this.ClientSize = new System.Drawing.Size(727, 492);
         this.Controls.Add(this.m_Grid);
         this.Controls.Add(this.toolStrip1);
         this.Name = "SimpleSpreadForm";
         this.Text = "Form1";
         this.Load += new System.EventHandler(this.OnFormLoad);
         ((System.ComponentModel.ISupportInitialize)(this.m_Grid)).EndInit();
         this.toolStrip1.ResumeLayout(false);
         this.ResumeLayout(false);
         this.PerformLayout();

      }

      private System.Windows.Forms.DataGridView m_Grid;
      private System.Windows.Forms.ToolStrip toolStrip1;
      private System.Windows.Forms.ToolStripButton m_SumToolStripButton;

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








23.83.DataGridView
23.83.1.Simple DataGridView
23.83.2.Programmatic Grid
23.83.3.Calculation with DataGridView
23.83.4.Custom Header Cells
23.83.5.Fill Columns
23.83.6.Virtual Data