對於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...