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

首頁 > 編程 > .NET > 正文

DataGridView多維表頭的實(shí)現(xiàn)方法

2024-07-10 12:46:04
字體:
供稿:網(wǎng)友

背景

對(duì)于.NET 原本提供的DataGridView控件,制作成如下形式的表格是毫無壓力的。

但是如果把表格改了一下,變成如下形式

傳統(tǒng)的DataGridView就做不到了,如果擴(kuò)展一下還是行的,有不少網(wǎng)友也擴(kuò)展了DataGridView控件,不過有些也只能制作出二維的表頭。或者使用第三方的控件,之前也用過DevExpress的BoundGridView。不過在沒有可使用的第三方控件的情況下,做到下面的效果,就有點(diǎn)麻煩了。

那得自己擴(kuò)展了,不過最后還是用了一個(gè)控件庫的報(bào)表控件,Telerik的Reporting。不過我自己還是擴(kuò)展了DataGridView,使之能制作出上面的報(bào)表。

準(zhǔn)備

學(xué)習(xí)了一些網(wǎng)友的代碼,原來制作這個(gè)多維表頭都是利用GDI+對(duì)DataGirdView的表頭進(jìn)行重繪。

用到的方法包括

Graphics.FillRectangle //填充一個(gè)矩形

Graphics.DrawLine //畫一條線

Graphics.DrawString  //寫字符串

此外為了方便組織表頭,本人還定義了一個(gè)表頭的數(shù)據(jù)結(jié)構(gòu) HeaderItem 和 HeaderCollection 分別作為每個(gè)表頭單元格的數(shù)據(jù)實(shí)體和整個(gè)表頭的集合。

HeaderItem的定義如下

代碼如下:
public class HeaderItem
     {
         private int _startX;//起始橫坐標(biāo)
         private int _startY;//起始縱坐標(biāo)
         private int _endX; //終止橫坐標(biāo)
         private int _endY; //終止縱坐標(biāo)
         private bool _baseHeader; //是否基礎(chǔ)表頭

         public HeaderItem(int startX, int endX, int startY, int endY, string content)
         {
             this._endX = endX;
             this._endY = endY;
             this._startX = startX;
             this._startY = startY;
             this.Content = content;
         }

         public HeaderItem(int x, int y, string content):this(x,x,y,y,content)
         {

         }

         public HeaderItem()

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北辰区| 南靖县| 安庆市| 佛山市| 稷山县| 馆陶县| 澎湖县| 济源市| 邹平县| 敖汉旗| 错那县| 辽宁省| 平舆县| 镇赉县| 句容市| 北安市| 上杭县| 盐山县| 福贡县| 犍为县| 东安县| 家居| 东兴市| 长兴县| 乐都县| 五常市| 庆云县| 美姑县| 平潭县| 章丘市| 宁远县| 遂溪县| 开远市| 汶上县| 永城市| 错那县| 邢台市| 剑阁县| 庄浪县| 繁峙县| 盘锦市|