Mega Code Archive

 
Categories / C# Tutorial / GUI Windows Forms
 

Virtual Data

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;    class VirtualModeForm : Form     {       private List<DataObject> m_Data = new List<DataObject>();       private List<bool> m_Visited = new List<bool>();       public VirtualModeForm()       {          InitializeComponent();          m_Grid.CellValueNeeded += OnCellValueNeeded;          m_GetVisitedCountButton.Click += OnGetVisitedCount;          InitData();          InitGrid();       }       private void InitData()       {          for (int i = 0; i < 100; i++)          {             m_Visited.Add(false);             DataObject obj = new DataObject();             obj.Id = i;             obj.Val = 2 * i;             m_Data.Add(obj);          }       }       private void InitGrid()       {          m_Grid.VirtualMode = true;          m_Grid.ReadOnly = true;          m_Grid.AllowUserToAddRows = false;          m_Grid.AllowUserToDeleteRows = false;          m_Grid.ColumnCount = 3;          m_Grid.Rows.Add();          m_Grid.Rows.AddCopies(0, 100);       }       private void OnCellValueNeeded(object sender,          DataGridViewCellValueEventArgs e)       {          m_Visited[e.RowIndex] = true;          if (e.ColumnIndex == 0)          {             e.Value = m_Data[e.RowIndex].Id;          }          else if (e.ColumnIndex == 1)          {             e.Value = m_Data[e.RowIndex].Val;          }          else if (e.ColumnIndex == 2)          {             Random rand = new Random();             e.Value = rand.Next();          }       }       private void OnGetVisitedCount(object sender, EventArgs e)       {          int count = 0;          foreach (bool b in m_Visited)          {             if (b) count++;          }          MessageBox.Show(count.ToString());       }       private void InitializeComponent()       {          this.m_Grid = new System.Windows.Forms.DataGridView();          this.m_GetVisitedCountButton = new System.Windows.Forms.Button();          ((System.ComponentModel.ISupportInitialize)(this.m_Grid)).BeginInit();          this.SuspendLayout();          //           // m_Grid          //           this.m_Grid.Location = new System.Drawing.Point(12, 12);          this.m_Grid.Name = "m_Grid";          this.m_Grid.Size = new System.Drawing.Size(327, 252);          this.m_Grid.TabIndex = 0;          this.m_Grid.Text = "dataGridView1";          //           // m_GetVisitedCountButton          //           this.m_GetVisitedCountButton.Location = new System.Drawing.Point(12, 280);          this.m_GetVisitedCountButton.Name = "m_GetVisitedCountButton";          this.m_GetVisitedCountButton.Size = new System.Drawing.Size(231, 23);          this.m_GetVisitedCountButton.TabIndex = 1;          this.m_GetVisitedCountButton.Text = "Get Count of Visited Cells";          //           // VirtualModeForm          //           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);          this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;          this.ClientSize = new System.Drawing.Size(365, 346);          this.Controls.Add(this.m_GetVisitedCountButton);          this.Controls.Add(this.m_Grid);          this.Name = "VirtualModeForm";          this.Text = "Form1";          ((System.ComponentModel.ISupportInitialize)(this.m_Grid)).EndInit();          this.ResumeLayout(false);       }       private System.Windows.Forms.DataGridView m_Grid;       private System.Windows.Forms.Button m_GetVisitedCountButton;       [STAThread]       static void Main()       {          Application.EnableVisualStyles();          Application.Run(new VirtualModeForm());       }    }    public class DataObject    {       private int m_Id;       private int m_Val;       public int Val       {          get { return m_Val; }          set { m_Val = value; }       }       public int Id       {          get { return m_Id; }          set { m_Id = value; }       }    }