国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

顯示DataGrid序號的一個適用的方法

2024-07-21 02:20:09
字體:
來源:轉載
供稿:網友

我在網上查了好幾個例子,如果數據量小的話沒有問題,一旦數據量大,顯示特別慢,還有個缺點就是拖動行高時行號不隨行高的變化而變動,出現是幾個序號在一個單元格中顯示。我自己對他們的算法進行總結,寫出一個效果比較不錯的帶序號的datagrid。原理:只顯示表格中顯示行的序號,并且拖動行,行號一起移動。

override protected void onpaint(painteventargs e)

{

base.onpaint(e);

try

{

if(this.datasource!=null)

{

int ydelta;

system.drawing .rectangle cell=this.getcellbounds(0,0);

int y=cell.top +2;

e.graphics.drawstring("編號", this.font, new solidbrush(color.black), 8, y-18); //

if(this.visiblerowcount >0)//只在有記錄集時在表格中顯示序號

{

currencymanager cm;

cm = (currencymanager) this.bindingcontext[this.datasource, this.datamember];

if(cm.count >0)

{

int nrow=-1;

y=41; //為第一行默認高度

while(nrow<0)

{

nrow=this.hittest (8,y).row ;

y++;

}

int ncount=0;

while(y<this.height && ncount<this.visiblerowcount )

{

string text = string.format("{0}", nrow+ncount+1);

e.graphics.drawstring(text, this.font, new solidbrush(color.black), 10, y);

ydelta = this.getcellbounds( nrow+ncount,0).height + 1;//****表示一行高度的參數

y += ydelta;

//如果下面有子行顯示序號的區分顯示

if(this.isexpanded (nrow+ncount)&& nrow+ncount+1<cm.count ) {

y+=this.getcellbounds (nrow+ncount+1,0).height +3;

}

ncount++;

}

}

}

}

}

catch

{}

}

重載了datagrid中的paint,這樣用起來會特別方便,區區雕蟲小技,希望和大家共同分享。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 区。| 进贤县| 辽中县| 垫江县| 淮滨县| 巴东县| 石门县| 容城县| 中江县| 元朗区| 永修县| 东辽县| 金门县| 新平| 栾城县| 曲阳县| 合江县| 钟祥市| 洮南市| 奈曼旗| 玉门市| 云阳县| 前郭尔| 兴安县| 仙居县| 蓝田县| 肇州县| 平舆县| 丰原市| 临漳县| 岗巴县| 昭觉县| 吉安市| 彩票| 河北区| 革吉县| 板桥市| 黄山市| 西宁市| 安新县| 久治县|