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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Winform DataGridView控件添加行号

發布時間:2024/9/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Winform DataGridView控件添加行号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有很多種方法,這里介紹三種:

A:

控件的RowStateChanged事件中添加,RowStateChanged事件是在行的狀態更改(例如,失去或獲得輸入焦點)時發生的事件:

1 e.Row.HeaderCell.Value = (e.Row.Index + 1).ToString();//添加行號 2 3 //e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);

B:

使用控件的RowPostPaint事件,RowPostPaint事件是在繪制 System.Windows.Forms.DataGridViewRow (所有單元格繪制,執行了行繪制之后)發生的事件,不過使用RowPostPaint事件這種方法在數據量很大的時候性能比較差,每次滾動數據都會觸發RowPostPaint事件,繪制行號。

(主要利用TextRenderer.DrawText()方法,使用指定的設備上下文、字體、顏色和格式說明在指定界限中繪制指定文本。)

按 Ctrl+C 復制代碼 按 Ctrl+C 復制代碼

B)2):?

1 private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)2 {3 var rowIdx = (e.RowIndex + 1).ToString();4 var centerFormat = new StringFormat()5 {6 Alignment = StringAlignment.Center,7 LineAlignment = StringAlignment.Center,8 };9 var headerBounds = new Rectangle(e.RowBounds.Left, e.RowBounds.Top, dataGridView1.RowHeadersWidth, e.RowBounds.Height); 10 e.Graphics.DrawString(rowIdx, this.Font, SystemBrushes.ControlText, headerBounds, centerFormat); 11 }

C:

在控件的RowsAdded事件和RowsRemoved事件中添加代碼。

RowsAdded事件是 在向 System.Windows.Forms.DataGridView 中添加新行之后發生。

1 private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)2 {3 4 for (int i = 0; i < e.RowCount; i++)5 {6 dataGridView1.Rows[e.RowIndex + i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;7 dataGridView1.Rows[e.RowIndex + i].HeaderCell.Value = (e.RowIndex + i + 1).ToString();8 }9 10 for (int i = e.RowIndex + e.RowCount; i < this.dataGridView1.Rows.Count; i++) 11 { 12 dataGridView1.Rows[i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 13 dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString(); 14 } 15 }

?
RowsRemoved事件是 在從 System.Windows.Forms.DataGridView 中刪除一行或多行時發生。

1 private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)2 {3 for (int i = 0; i < e.RowCount; i++)4 {5 dataGridView1.Rows[e.RowIndex + i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;6 dataGridView1.Rows[e.RowIndex + i].HeaderCell.Value = (e.RowIndex + i + 1).ToString();7 }8 9 for (int i = e.RowIndex + e.RowCount; i < this.dataGridView1.Rows.Count; i++) 10 { 11 dataGridView1.Rows[i].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 12 dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString(); 13 } 14 }

注:DataGridView控件的RowsHeaderWidthSizeMode屬性可以設置如何調整行標題寬度,設置為AutoSizeToAllHeaders或者AutoSizeToDisplayedHeaders,會自動設置寬度不會出現行指示符擠壓行號的情況。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Winform DataGridView控件添加行号的全部內容,希望文章能夠幫你解決所遇到的問題。

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