dataGridView 應用那些事兒

2021-09-05 19:48:00 字數 2551 閱讀 2912

對於datagridview這個控制項,在使用過程中又有了一些新的發現和認識,總結一波;

1、datagridview-autosizecolumnmode屬性列舉值-調整列寬 屬性

表示allcells

調整列寬,以適合該列中的所有單元格的內容,包括標題單元格。

allcell***ceptheader

調整列寬,以適合該列中的所有單元格的內容,不包括標題單元格。

columnheader

調整列寬,以適合列標題單元格的內容

displayedcells

調整列寬,以適合當前螢幕上顯示的行的列中的所有單元格的內容,包括標題單元格。

displayedcell***ceptheader

調整列寬,以適合當前螢幕上顯示的行的列中的所有單元格的內容,不包括標題單元格。

fill

調整列寬,使所有列的寬度正好填充控制項的顯示區域,只需要水平滾動保證列寬在

datagridviewcolumn.minimumwidth

屬性值以上。相對列寬由相對 datagridviewcolumn.fillweight 屬性值決定。

none

列寬不會自動調整。

notset

列的大小調整行為從 datagridview.autosizecolumnsmode 屬性繼承

2、繼承窗體使用

在組合查詢的時候,運用到模板方法模式,就用到繼承窗體啦,這個時候要給父類中的datagridview控制項的modifiers屬性設為protected,原理和類的訪問許可權的一致, 這樣子類在繼承的時候就能夠順利使用該控制項啦;

3、對datagridview的修改

//唯讀

datagridview1.columns[1].readonly = true;

//不可見

datagridview1.columns["ischeck"].visible = false;

當指定單元格不可編輯時我們需要使用單元格座標設定,使用readonly就不方便了,此時就可以考慮事件啦,cellbeginedit事件來幫忙;

private void datagridview1_cellbeginedit(object sender, datagridviewcellcanceleventargs e)

}

//刪除選中行

foreach (datagridviewrow r in datagridview1.selectedrows)

}

4、 editmode 屬性-編輯

datagridview.editmode 屬性被設定為 datagridvieweditmode.editprogrammatically 時,使用者就不能手動編輯單元格的內容了,也可以通過程式,呼叫 datagridview.beginedit 方法,使單元格進入編輯模式進行編輯,如上面指定單元格不可編輯舉例;

datagridview1.editmode = datagridvieweditmode.editprogrammatically;
3、動態操作

利用datagridview1.rows.add()事件為datagridview控制項增加新的行,該函式返回新增新行的索引號,即新行的行號,然後可以通過該索引號操作該行的各個單元格,如:

int index=this.datagridview1.rows.add();

datagridview1.rows[index].cells[0].value = "1"

//自動移動資料

datagridview1.rows.remove(datagridview1.currentrow);

可以通過 datagridview 物件的 currentcell 屬性取得,如果當前單元格不存在的時候,返回null;

work.userid = (int64)datagridview1.currentrow.cells[0].value;

user.userid = (int64)datagridview1.currentrow.cells[0].value;

//只清空資料

datagridview1.datasource = "";

//清空整個datagridview,清空標題行

datagridview1.rows.clear();

4、介面優化

動態操作設定單雙行顏色看起來更賞心悅目,更舒服

datagridview1.clearselection();

for (int i = 0; i < datagridview1.rows.count; i++)

if (i % 2 == 1)

datagridview1.rows[i].defaultcellstyle.backcolor = color.whitesmoke;

機房重構 dataGridView 控制項應用

機房重構在完成完成了註冊 充值 退卡 啟用等窗體之後,突然發現操作員對卡的操作和管理完全可以通過 datagridview 控制項應用在乙個窗體上實現。於是就嘗試寫了一下,雖然這樣一來,有些功能就重複了,不過沒關係,開心就好。region 選中了某一行,右擊選單 private void datag...

斐波那契數列應用

斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一種登法 登上兩級台階,有兩種登...

datagridview合併表頭

1.功能說明 將連續的多個列合併成乙個新列。2.不足之處 不能合併多層。比如下圖這樣的功能是沒有的。3.使用參考.在form的建構函式裡寫下如下 utility.exgridview.isenlarged false 在datagridview的cellpaiting事件中寫如下 utility.e...