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不僅會(huì)清空數(shù)據(jù),而且也會(huì)把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屬性。可以通過(guò)設(shè)置ContextMenuStrip對(duì)象來(lái)控制DataGridView的右鍵菜單的顯示。
- DataGridViewColumn的ContextMenuStrip屬性設(shè)定除了列頭以外的單元格的右鍵菜單。
- DataGridViewRow的ContextMenuStrip屬性設(shè)定除了行頭以外的單元格的右鍵菜單。
- DataGridViewCell的ContextMenuStrip屬性設(shè)定指定單元格的右鍵菜單。
對(duì)于單元格上的右鍵菜單的設(shè)定,優(yōu)先順序是:Cell>Row>Column>DataGridView
利用CellContextMenuStripNeeded、RowContextMenuStripNeeded事件可以設(shè)定單元格的右鍵菜單,尤其是需要右鍵菜單根據(jù)單元格值的變化而變化的時(shí)候。比起使用循環(huán)遍歷,使用該事件來(lái)設(shè)定右鍵菜單的效率更高。
說(shuō)明: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è)定右鍵菜單的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#檢測(cè)移動(dòng)硬盤(pán)并獲取移動(dòng)硬盤(pán)盤(pán)符的方法
這篇文章主要介紹了利用C#檢測(cè)移動(dòng)硬盤(pán)并獲取移動(dòng)硬盤(pán)盤(pán)符2017-12-12C#?異步多線(xiàn)程入門(mén)到精通之Thread篇
Thread?是?1.0?時(shí)代的產(chǎn)物,當(dāng)時(shí)?C#?就考慮到了多線(xiàn)程,于是就設(shè)計(jì)了?Thread?。其實(shí)現(xiàn)在不推薦使用,除非在維護(hù)老的項(xiàng)目已經(jīng)用了的。Thread?也是比較雞肋的,有很多缺陷,但也并不是一無(wú)是處2021-11-11提權(quán)函數(shù)之RtlAdjustPrivilege()使用說(shuō)明
RtlAdjustPrivilege() 這玩意是在 NTDLL.DLL 里的一個(gè)不為人知的函數(shù),MS沒(méi)有公開(kāi),原因就是這玩意實(shí)在是太NB了,以至于不需要任何其他函數(shù)的幫助,僅憑這一個(gè)函數(shù)就可以獲得進(jìn)程ACL的任意權(quán)限!2011-06-06C#中使用@聲明變量示例(逐字標(biāo)識(shí)符)
這篇文章主要介紹了C#中使用@聲明變量示例(逐字標(biāo)識(shí)符)在C#中,@符號(hào)不僅可以加在字符串常量之前,使字符串不作轉(zhuǎn)義之用,還可以加在變量名之前,使變量名與關(guān)鍵字不沖突,這種用法稱(chēng)為“逐字標(biāo)識(shí)符”,需要的朋友可以參考下2015-06-06C# 屏蔽關(guān)鍵字的實(shí)現(xiàn)方法
前段時(shí)間在公司做了一個(gè)論壇屏蔽關(guān)鍵字的功能,我做的比較簡(jiǎn)單、實(shí)用~ 現(xiàn)在拿出來(lái)給博友們分享下..也希望大家能頂頂我~2013-05-05