Mega Code Archive

 
Categories / C# Tutorial / GUI Windows Forms
 

Calculation with DataGridView

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