首页 > 编程 > C# > 正文

C#处理datagridview虚拟模式的方法

2020-01-24 01:41:26
字体:
来源:转载
供稿:网友

本文实例讲述了C#处理datagridview虚拟模式的方法。分享给大家供大家参考。具体如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace VirtualMode{  partial 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 < 1000001; 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, 1000000);     // Uncomment the next line and comment out the      // the rest of the method to switch to data bound mode     //m_Grid.DataSource = m_Data;   }   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 VirtualModeForm_Load(object sender, EventArgs e)    {    }  }  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; }   }  }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表