日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

显示DataGrid序号的一个适用的方法

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 显示DataGrid序号的一个适用的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者Blog:http://blog.csdn.net/wangj2001/

如果數據量小的話沒有問題,一旦數據量大,顯示特別慢,還有個缺點就是拖動行高時行號不隨行高的變化而變動,出現是幾個序號在一個單元格中顯示。我自己對他們的算法進行總結,寫出一個效果比較不錯的帶序號的
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,這樣用起來會特別方便,區區雕蟲小技,希望和大家共同分享。

總結

以上是生活随笔為你收集整理的显示DataGrid序号的一个适用的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。