DataGridView清除顯示的數(shù)據(jù)、設(shè)定右鍵菜單
一、清空數(shù)據(jù)
1、DataGridView未綁定數(shù)據(jù)時(shí)清空數(shù)據(jù)
this.dgv_PropDemo.DataSource = null
2、DataGridView綁定數(shù)據(jù)時(shí)清空數(shù)據(jù)
DataGridView綁定了數(shù)據(jù)就不能使用this.dgv_PropDemo.DataSource = null清空數(shù)據(jù)了,使用this.dgv_PropDemo.DataSource = null不僅會清空數(shù)據(jù),而且也會把DataGridView的列清空掉,這時(shí)就要使用如下的代碼清空顯示的數(shù)據(jù):
DataTable dt = this.dgv_PropDemo.DataSource as DataTable; dt.Rows.Clear(); this.dgv_PropDemo.DataSource = dt;
二、設(shè)定右鍵菜單
DataGridView,DataGridViewColumn,DataGridViewRow,DataGridViewCell有ContextMenuStrip屬性??梢酝ㄟ^設(shè)置ContextMenuStrip對象來控制DataGridView的右鍵菜單的顯示。
- DataGridViewColumn的ContextMenuStrip屬性設(shè)定除了列頭以外的單元格的右鍵菜單。
- DataGridViewRow的ContextMenuStrip屬性設(shè)定除了行頭以外的單元格的右鍵菜單。
- DataGridViewCell的ContextMenuStrip屬性設(shè)定指定單元格的右鍵菜單。
對于單元格上的右鍵菜單的設(shè)定,優(yōu)先順序是:Cell>Row>Column>DataGridView
利用CellContextMenuStripNeeded、RowContextMenuStripNeeded事件可以設(shè)定單元格的右鍵菜單,尤其是需要右鍵菜單根據(jù)單元格值的變化而變化的時(shí)候。比起使用循環(huán)遍歷,使用該事件來設(shè)定右鍵菜單的效率更高。
說明:CellContextMenuStripNeeded事件處理方法的參數(shù)中,e.RowIndex=-1表示列頭,e.ColumnIndex=-1表示行頭。RowContextMenuStripNeeded則不存在e.ColumnIndex=-1的情況。
示例一:
//設(shè)置DataGridView的右鍵菜單 this.dgv_Users.ContextMenuStrip = cmsDgv; //設(shè)置列的右鍵菜單 this.dgv_Users.Columns[1].ContextMenuStrip = cmsColumn; //設(shè)置列頭的右鍵菜單 this.dgv_Users.Columns[1].HeaderCell.ContextMenuStrip = cmsHeaderCell; //設(shè)置行的右鍵菜單 this.dgv_Users.Rows[2].ContextMenuStrip = cmsRow; //設(shè)置單元格的右鍵菜單 this.dgv_Users[1, 2].ContextMenuStrip = cmsCell;
示例二:
private void dgv_Users_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e) { DataGridView dgv = sender as DataGridView; if (e.RowIndex < 0) { //設(shè)置列頭右鍵 e.ContextMenuStrip = cmsHeaderCell; } else if (e.ColumnIndex < 0) { //設(shè)置行頭右鍵菜單 e.ContextMenuStrip = cmsRow; } else if (dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Equals("男")) { e.ContextMenuStrip = cmsCell; } else { e.ContextMenuStrip = cmsDgv; } }
到此這篇關(guān)于DataGridView清除顯示的數(shù)據(jù)、設(shè)定右鍵菜單的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#檢測移動(dòng)硬盤并獲取移動(dòng)硬盤盤符的方法
這篇文章主要介紹了利用C#檢測移動(dòng)硬盤并獲取移動(dòng)硬盤盤符2017-12-12提權(quán)函數(shù)之RtlAdjustPrivilege()使用說明
RtlAdjustPrivilege() 這玩意是在 NTDLL.DLL 里的一個(gè)不為人知的函數(shù),MS沒有公開,原因就是這玩意實(shí)在是太NB了,以至于不需要任何其他函數(shù)的幫助,僅憑這一個(gè)函數(shù)就可以獲得進(jìn)程ACL的任意權(quán)限!2011-06-06C# 屏蔽關(guān)鍵字的實(shí)現(xiàn)方法
前段時(shí)間在公司做了一個(gè)論壇屏蔽關(guān)鍵字的功能,我做的比較簡單、實(shí)用~ 現(xiàn)在拿出來給博友們分享下..也希望大家能頂頂我~2013-05-05