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

所属分类: 软件编程 / C#教程 阅读数: 45
收藏 0 赞 0 分享

本文实例讲述了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#程序设计有所帮助。

更多精彩内容其他人还在看

C# SendInput 模拟鼠标操作的实现方法

C# SendInput 模拟鼠标操作的实现方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中 paint()与Onpaint()的区别

paint是事件onpaint方法onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的:
收藏 0 赞 0 分享

c#中GetType()与Typeof()的区别

c#中GetType()与Typeof()的区别,需要的朋友可以参考一下
收藏 0 赞 0 分享

将字符串转换成System.Drawing.Color类型的方法

将字符串转换成System.Drawing.Color类型的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# 抓取网页内容的方法

C# 抓取网页内容的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

基于C#后台调用跨域MVC服务及带Cookie验证的实现

本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下
收藏 0 赞 0 分享

使用C#获取远程图片 Form用户名与密码Authorization认证的实现

本篇文章介绍了,使用C#获取远程图片 Form用户名与密码Authorization认证的实现。需要的朋友参考下
收藏 0 赞 0 分享

Winform跨线程操作的简单方法

线程间操作无效:从不是创建控件“label1”的线程访问它
收藏 0 赞 0 分享

C# WINFORM 强制让窗体获得焦点的方法代码

C# WINFORM 强制让窗体获得焦点的方法代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中方括号[]的语法及作用介绍

C#中方括号[]可用于数组,索引、属性,更重要的是用于外部DLL类库的引用。
收藏 0 赞 0 分享
查看更多