DataGridView自定義單元格表示值、Error圖標(biāo)顯示的方法介紹
自定義單元格表示值
通過CellFormatting事件,可以自定義單元格的表示值。(比如:值為Error的時(shí)候,單元格被設(shè)定為紅色)
示例:
private void dgv_Users_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { try { if (e == null || e.Value == null || !(sender is DataGridView)) return; DataGridView dgv = sender as DataGridView; if (dgv.Columns[e.ColumnIndex].Name=="Sex") { string value = e.Value.ToString(); if (value.Equals("女")) { e.Value = "Woman"; e.FormattingApplied = true; } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
Error圖標(biāo)顯示
為了提醒用戶注意,DataGridView可以使用Error圖標(biāo)來突出顯示。
Error圖標(biāo)可以在單元格和行頭內(nèi)表示,但不能在列頭上顯示。
1、ErrorText屬性
當(dāng)設(shè)定單元格/行的ErrorText屬性的內(nèi)容后,單元格/行的Error圖標(biāo)就會(huì)被表示出來。另外,只有在DataGridView.ShowCellErrors=True時(shí),Error圖標(biāo)才能顯示。(默認(rèn)屬性為True)
設(shè)定(0,0)的單元格表示Error圖標(biāo)
this.dgv_Users[0, 0].ErrorText = "只能輸入男或女";
設(shè)定第4行的行頭顯示Error圖標(biāo)
this.dgv_Users.Rows[3].ErrorText = "不能輸入負(fù)數(shù)";
2、CellErrorTextNeeded、RowErrorTextNeeded事件
即時(shí)輸入時(shí)的Error圖標(biāo)的表示,可以使用CellErrorTextNeeded事件。同時(shí),在大量的數(shù)據(jù)處理時(shí),需要進(jìn)行多處的內(nèi)容檢查并顯示Error圖標(biāo)的應(yīng)用中,遍歷單元格設(shè)定ErrorText的方法是效率低下的,應(yīng)該使用CellErrorTextNeeded事件。行的Error圖標(biāo)的設(shè)定則應(yīng)該使用RowErrorTextNeeded事件。但是,需要注意的是當(dāng)DataSource屬性設(shè)定了VirtualMode=True時(shí),上述事件則不會(huì)被觸發(fā)。
CellErrorTextNeeded、RowErrorTextNeeded事件一般在需要保存數(shù)據(jù)時(shí)使用,保存數(shù)據(jù)之前先判斷單元格輸入的值是否合法,如果不合法,則在不合法的單元格或行顯示Error圖標(biāo)。相當(dāng)于做了一個(gè)客戶端的驗(yàn)證。
private void dgv_Users_CellErrorTextNeeded(object sender, DataGridViewCellErrorTextNeededEventArgs e) { DataGridView dgv=sender as DataGridView; if (dgv.Columns[e.ColumnIndex].Name.Equals("Sex")) { string value = dgv[e.ColumnIndex, e.RowIndex].Value.ToString(); if (!value.Equals("男") && !value.Equals("女")) { e.ErrorText = "只能輸入男或女"; } } }
private void dgv_Users_RowErrorTextNeeded(object sender, DataGridViewRowErrorTextNeededEventArgs e) { DataGridView dgv = sender as DataGridView; if (dgv["UserName", e.RowIndex].Value == DBNull.Value && dgv["Password", e.RowIndex].Value == DBNull.Value) { e.ErrorText = "UserName和Password列必須輸入值"; } }
到此這篇關(guān)于DataGridView自定義單元格表示值、Error圖標(biāo)顯示的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#?wpf實(shí)現(xiàn)任意控件更多調(diào)整大小功能
這篇文章主要為大家詳細(xì)介紹了C#?wpf實(shí)現(xiàn)任意控件更多調(diào)整大小功能的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01c# Process.Start()找不到系統(tǒng)文件的解決方法
vs1027在X64應(yīng)用程序下執(zhí)行process.start()時(shí),OK;但是在X86應(yīng)用程序下執(zhí)行process.start(),報(bào)錯(cuò):找不到系統(tǒng)文件,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解一下2023-09-09