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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows Forms DataGridView 中合并单元格

發布時間:2025/3/16 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows Forms DataGridView 中合并单元格 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Windows Forms DataGridView 沒有提供合并單元格的功能,要實現合并單元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.DrawString 自己來“畫”。

下面的代碼可以對DataGridView第1列內容相同的單元格進行合并:
????????private?void?dataGridView1_CellPainting(object?sender,?DataGridViewCellPaintingEventArgs?e)
????????{
????????????
//?對第1列相同單元格進行合并
????????????if?(e.ColumnIndex?==?0?&&?e.RowIndex?!=?-1)
????????????{
????????????????
using
????????????????????(
????????????????????Brush?gridBrush?
=?new?SolidBrush(this.dataGridView1.GridColor),
????????????????????backColorBrush?
=?new?SolidBrush(e.CellStyle.BackColor)
????????????????????)
????????????????{
????????????????????
using?(Pen?gridLinePen?=?new?Pen(gridBrush))
????????????????????{
????????????????????????
//?清除單元格
????????????????????????e.Graphics.FillRectangle(backColorBrush,?e.CellBounds);

????????????????????????
//?畫?Grid?邊線(僅畫單元格的底邊線和右邊線)
????????????????????????
//???如果下一行和當前行的數據不同,則在當前的單元格畫一條底邊線
????????????????????????if?(e.RowIndex?<?dataGridView1.Rows.Count?-?1?&&
????????????????????????dataGridView1.Rows[e.RowIndex?
+?1].Cells[e.ColumnIndex].Value.ToString()?!=?
????????????????????????e.Value.ToString())
????????????????????????????e.Graphics.DrawLine(gridLinePen,?e.CellBounds.Left,
????????????????????????????e.CellBounds.Bottom?
-?1,?e.CellBounds.Right?-?1,
????????????????????????????e.CellBounds.Bottom?
-?1);
????????????????????????
//?畫右邊線
????????????????????????e.Graphics.DrawLine(gridLinePen,?e.CellBounds.Right?-?1,
????????????????????????????e.CellBounds.Top,?e.CellBounds.Right?
-?1,
????????????????????????????e.CellBounds.Bottom);

????????????????????????
//?畫(填寫)單元格內容,相同的內容的單元格只填寫第一個
????????????????????????if?(e.Value?!=?null)
????????????????????????{
????????????????????????????
if?(e.RowIndex?>?0?&&
????????????????????????????dataGridView1.Rows[e.RowIndex?
-?1].Cells[e.ColumnIndex].Value.ToString()?==?
??????????????????????????? e.Value.ToString())
????????????????????????????{?}
????????????????????????????
else
????????????????????????????{
????????????????????????????????e.Graphics.DrawString((String)e.Value,?e.CellStyle.Font,
????????????????????????????????????Brushes.Black,?e.CellBounds.X?
+?2,
????????????????????????????????????e.CellBounds.Y?
+?5,?StringFormat.GenericDefault);
????????????????????????????}
????????????????????????}
????????????????????????e.Handled?
=?true;
????????????????????}
????????????????}
????????????}
????????}
本文地址:http://www.cnblogs.com/anjou/archive/2007/01/08/615056.html

總結

以上是生活随笔為你收集整理的Windows Forms DataGridView 中合并单元格的全部內容,希望文章能夠幫你解決所遇到的問題。

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