2017-08-11 88 views
0

我試圖編輯DataGridViewCell的BackColor以在用戶輸入的值不正確時顯示爲紅色。DataGridView單元格顏色在錯誤時不會更改

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) 
    { 
     if (e.Exception is FormatException) 
     { 
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Red; 
     } 

    } 

由於我不明白的原因,顏色並未實際更新。它可以很好地編輯任何其他單元而不是選定的單元格。

+0

我已經部分地通過編輯現在固定在它使用編輯的(文本框)背面顏色也。但我仍不明白爲什麼背景顏色不更新。 –

回答

0

我不知道你的代碼,但也許你需要再次考慮程序的登錄。這取決於異常來自何處。如果來自未設置文本的地方,則無法更改顏色。 DataError是異常,因此拋出的代碼沒有運行。我認爲DataError沒有關於哪個單元格是例外的每個異常的信息。所以有可能你不改變顏色。

我不知道你的代碼,所以我不能幫上忙。但我會告訴你我會怎麼做。

我將做一個函數來檢查用戶輸入,我會打電話給它Datagreedview CellValidating事件和變色那裏,如果輸入不正確

+0

我在更新CellValidating中的顏色時也遇到同樣的問題。或者,這可能是與錯誤仍然被拋出? –

+0

只需要進一步添加 - 問題不在於顏色屬性不會更改。顏色屬性實際上是紅色的,但是如果我想要驗證取消(保留在同一文本框中),它看起來不會顯示爲紅色。 –

+0

您是否可以嘗試離開單元格以適應更改,然後重新聚焦它? – Angua