簡體   English   中英

C#datagridview。 盡管DefaultCellStyle,單元格背景色為空

[英]C# datagridview. Cell backcolor is empty dispite of DefaultCellStyle

我通過以下方式將datagridview中的單元格背景色設置為黃色

`grid.DefaultCellStyle.BackColor = Color.Yellow;`

我看到黃色的單元格,但是單元格的背景色也應該不是黃色嗎? 我得到一個“ Color [Empty]”而不是黃色。 如果嘗試以下代碼,為什么顏色不是黃色? grid.CellClick += new DataGridViewCellEventHandler( (eventsource, cellevent) => { int rowIndex = cellevent.RowIndex; int colIndex = cellevent.ColumnIndex; MessageBox.Show(" color: "+ grid.Rows[rowIndex].Cells[colIndex].Style.BackColor); });

電池的背面顏色屬性也應該不是黃色嗎?

不,不應該。

請注意,您可以將每個單元格的BackColor分別設置為其他默認顏色。 設置后,它優先於默認值。 Color.Emtpy是一個額外的值,表示: display the default color

MSDN

空的顏色:指定此顏色結構是否未初始化。

要找出顯示的內容,您只需對其進行測試:

Color c = someCell.Style.BackColor == Color.Emtpy ? 
          dgv.DefaultCellStyle.BackColor: someCell.Style.BackColor;

另一種測試方法是color.IsEmpty函數。

您還可以通過將顏色設置為Color.Emtpy來將其重置為默認顏色。 當默認顏色更改時,它也會更改。

范例

您想用玫瑰色的背面標記問題的單元格。 在用戶進入編輯模式之前,默認顏色為淺灰色。 然后變成白色。

玫瑰色的細胞不會跟隨,因為它們具有單獨的顏色設置。

糾正問題后,用戶離開單元格並重置其顏色:但不是白色,而是Color.Empty

現在,當用戶離開編輯模式時,所有沒有問題的單元格都將恢復為默認的瀏覽顏色,淺灰色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM