在我的Form Load事件中,我有一個添加到BindingSource的對象列表。代碼的最後一行我在加載事件稱之爲是:如何在WinForms中有條件地更改datagridview的單元格格式?
dataGridView1.DataSource = bindingSource;
我試圖改變細胞使用dataGridView1_CellPainting事件以及一個dataGridView1_CellFormatting事件格式化。這兩個事件都不會被調用。
感謝
在我的Form Load事件中,我有一個添加到BindingSource的對象列表。代碼的最後一行我在加載事件稱之爲是:如何在WinForms中有條件地更改datagridview的單元格格式?
dataGridView1.DataSource = bindingSource;
我試圖改變細胞使用dataGridView1_CellPainting事件以及一個dataGridView1_CellFormatting事件格式化。這兩個事件都不會被調用。
感謝
爲了從您必須訂閱它電網接收CellPainting
事件。這可以在表單設計器或代碼中完成。有關更多信息,請參閱this link。
值得注意的是,您可以通過使用DefaultCellStyle
屬性來處理更改顏色和其他單元格樣式功能。這可以應用於網格級別,行級別,列級別,一直到單個單元級別。這裏是一個不錯的圖像顯示的造型是怎樣遺傳的:
如果可能的話,最好在層次的最高水平的應用樣式,讓它繼承到細胞。這與您希望避免使用CellPainting
和CellFormatting
事件爲單元格着色的原因相同;您正在處理每個單元格的事件,並且可以更高效地完成該事件。您可能不會注意到它適用於小數據集或簡單網格,但如果需要縮放,它會減慢速度。在需要應用自定義格式或單元格繪製方式時使用這些事件,但爲了着色,您可以更高效。有關更多信息,請參見Best Practices Cell Styling。
從給出的信息看來,您嘗試將單元格顏色應用於自動生成的網格後數據綁定列。我的建議是使用上述技巧在DataBindingComplete
事件中設置DataGrid的樣式。您可以使用最新的綁定數據在那裏應用您的條件樣式,並避免在CellPainting
中進行過度處理。
你想用它做什麼? – DonBoitnott
對不起。更改背景顏色。 –
可能的重複:http://stackoverflow.com/questions/6041044/how-to-paint-only-datagridviews-cell-background-not-its-content – DonBoitnott