C#处理datagridview虚拟模式的方法
本文实例讲述了C#处理datagridview虚拟模式的方法。分享给大家供大家参考。具体如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceVirtualMode
{
partialclassVirtualModeForm:Form
{
privateList<DataObject>m_Data=newList<DataObject>();
privateList<bool>m_Visited=newList<bool>();
publicVirtualModeForm()
{
InitializeComponent();
m_Grid.CellValueNeeded+=OnCellValueNeeded;
m_GetVisitedCountButton.Click+=OnGetVisitedCount;
InitData();
InitGrid();
}
privatevoidInitData()
{
for(inti=0;i<1000001;i++)
{
m_Visited.Add(false);
DataObjectobj=newDataObject();
obj.Id=i;
obj.Val=2*i;
m_Data.Add(obj);
}
}
privatevoidInitGrid()
{
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);
//Uncommentthenextlineandcommentoutthe
//therestofthemethodtoswitchtodataboundmode
//m_Grid.DataSource=m_Data;
}
privatevoidOnCellValueNeeded(objectsender,
DataGridViewCellValueEventArgse)
{
m_Visited[e.RowIndex]=true;
if(e.ColumnIndex==0)
{
e.Value=m_Data[e.RowIndex].Id;
}
elseif(e.ColumnIndex==1)
{
e.Value=m_Data[e.RowIndex].Val;
}
elseif(e.ColumnIndex==2)
{
Randomrand=newRandom();
e.Value=rand.Next();
}
}
privatevoidOnGetVisitedCount(objectsender,EventArgse)
{
intcount=0;
foreach(boolbinm_Visited)
{
if(b)count++;
}
MessageBox.Show(count.ToString());
}
privatevoidVirtualModeForm_Load(objectsender,EventArgse)
{
}
}
publicclassDataObject
{
privateintm_Id;
privateintm_Val;
publicintVal
{
get{returnm_Val;}
set{m_Val=value;}
}
publicintId
{
get{returnm_Id;}
set{m_Id=value;}
}
}
}
希望本文所述对大家的C#程序设计有所帮助。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短