C DataGridView 為行頭新增行號

2021-09-07 04:25:43 字數 1702 閱讀 7333

private void datagridview1_rowsadded(object sender, datagridviewrowsaddedeventargs e)

for(int i = 0;i查詢到的資料是通過datagridview的rowpostpaint事件中進行繪製完成。

首先了解如何對headercell進行賦值

(需要注意的是value接收的是string物件。我開始直接將整形 1 賦值給value,並將datagridviewrow.headercell.valuetype設定為int時,value不顯示。)

private void button6_click(object sender, system.eventargs e)

datagridview.autoresizerowheaderswidth(

datagridviewrowheaderswidthsizemode.autosizetoallheaders);

}

第二步何時對headercell進行賦值

private void datagridview1_cellformatting(object sender, datagridviewcellformattingeventargs e)

}

我選擇了在格式轉化的時候對行號進行賦值

但是有兩個缺陷

1.heardercell 本身不會啟用該訊息,依靠的是同行第一列單元格。

2.每當其他單元格的內容改變時,或者重新繪製時,該訊息總會響應。

從目前的使用來看這兩種情況不會對最終效果有負面影響。

但是我想消除這種缺陷。希望在新增行的時候對headercell進行賦值。

在不同情況下有分別有各種的訊息達到這一目的:

使用者新增行,情況比較簡單,直接對headcell進行賦值

private void datagridview1_useraddedrow(object sender, datagridviewroweventargs e)

在程式中新增行的時候情況分為兩種

一種是繫結資料以後控制項自動新增行(這種情況 datagridview.rowsadded ,無法顯示正確顯示行號)

事實上通過每次新增行後,全部更新一遍行號,而不依賴e.rowindex,行號也是可以正確顯示的。只是複雜度從常數變成了n。

一種是通過datagridview.rows.add()新增行,因為此方法總是在最後一樣新增新的一行或者多行,所以可以通過以下**可以成功新增行號

private void datagridview1_rowsadded(object sender, datagridviewrowsaddedeventargs e)

}

但是如果使用datagridview.rows.insert()新增行時,以上方法不可行,因為已新增行的行號發生了改變,需要重新更改所有的行頭。

C DataGridView刪除指定行

恢復內容開始 最近有乙個關於datagridview刪除指定行的小問題困擾著,問題是這樣的 datagridview匯入乙個xls 如下圖 現在想將以上 資料插入資料庫,之前是想每成功插入一行資料就在datagridview裡刪除一行 即讓這行不顯示 沒有成功插入的不刪除 即顯示在datagridv...

C DataGridView刪除指定行

恢復內容開始 最近有乙個關於datagridview刪除指定行的小問題困擾著,問題是這樣的 datagridview匯入乙個xls 如下圖 現在想將以上 資料插入資料庫,之前是想每成功插入一行資料就在datagridview裡刪除一行 即讓這行不顯示 沒有成功插入的不刪除 即顯示在datagridv...

C DataGridView 凍結列或行

1.凍結列 把datagridview的columns中frozen屬性為true,此時在該列左側的所有列都被凍結 即被固定了 橫向滾動時固定列不隨滾動條滾動而左右移動。如下 固定左側2列,即固定 中的第0列,第1列 datagridview1.columns 1 frozen true 2.凍結行...