我有这个代码将Devexpress网格中的某些行设置为定义的颜色(例如Color.Red
)。但是,在将行颜色设置为红色之前,我需要将背景颜色重置为默认值(Color.White
)。
场景:我已将行1
和3
设置为red
,然后我更改了表单中的选项,现在只更改行3
和{{ 1}}应为4
,因此我需要将行red
和1
重置为3
white
答案 0 :(得分:1)
你不应该直接重置任何颜色,因为XtaGrid会在绘画时自行更新 - 只需根据某些特定条件指定行颜色:
void gvVehicle_RowStyle(object sender, RowStyleEventArgs e) {
Vehicle v = gvVehicle.GetRow(e.RowHandle) as Vehicle;
if(v != null){
if(highlightEvenRowCondition) {
if(v.VehicleData.VehicleID % 2 == 0)
e.Appearance.BackColor = Color.Red;
}
else {
if(v.VehicleData.VehicleID % 2 != 0)
e.Appearance.BackColor = Color.Red;
}
e.HighPriority = true;
}
}
bool highlightEvenRowCondition;
void buttonChangeHighlightCondition_Click(object sender, EventArgs e) {
highlightEvenRowCondition = !highlightEvenRowCondition;
gvVehicle.RefreshData();
}