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

 更新时间:2015年06月24日 09:48:55   作者:zhuzhao  
这篇文章主要介绍了C#处理datagridview虚拟模式的方法,实例分析了C#中datagridview的使用技巧,需要的朋友可以参考下

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

相关文章

  • 解析数字签名的substring结构(获取数字签名时间)

    解析数字签名的substring结构(获取数字签名时间)

    解析数字签名的substring结构,大家参考使用吧
    2013-12-12
  • C# zxing二维码写入的实例代码

    C# zxing二维码写入的实例代码

    C# zxing二维码写入的实例代码,需要的朋友可以参考一下
    2013-03-03
  • c# webapi 配置swagger的方法

    c# webapi 配置swagger的方法

    这篇文章主要介绍了c# webapi 配置swagger的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#实现简单获取扫码枪信息代码

    C#实现简单获取扫码枪信息代码

    本文给大家分享的是使用C#实现简单获取扫码枪信息代码,非常的简单实用,有需要的小伙伴可以参考下。
    2016-07-07
  • 如何在c#中使用Zlib压缩与解压

    如何在c#中使用Zlib压缩与解压

    这篇文章主要介绍了如何在c#中使用Zlib压缩与解压,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • 基于C#实现的敏感字检测示例

    基于C#实现的敏感字检测示例

    这篇文章主要介绍了基于C#实现的敏感字检测示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • C# AutoMapper 使用方法总结

    C# AutoMapper 使用方法总结

    这篇文章主要介绍了C# AutoMapper 使用方法,文中讲解非常细致,代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#调用CMD命令实例

    C#调用CMD命令实例

    这篇文章主要介绍了C#调用CMD命令实例本文只是给出一个比较简单的、入门级的例子,更多高级的操作技巧请参阅相关文章,需要的朋友可以参考下
    2014-08-08
  • c#开发的程序安装时动态指定windows服务名称

    c#开发的程序安装时动态指定windows服务名称

    前段时间由于项目的需求,要在Windows里把同样的组件制作成多个不同名称的服务,这些服务完成类似的功能,仅需要修改业务配置文件
    2012-06-06
  • Unity3D制作序列帧动画的方法

    Unity3D制作序列帧动画的方法

    这篇文章主要为大家详细介绍了Unity3D制作序列帧动画的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02

最新评论