2012-02-16 6 views
3

FormatConditions를 사용하여 속성에 따라 특정 행의 서식을 지정합니다. 예 : 많은 행이있는 gridcontrol 있고 오류가있을 때 일부 행을 빨간색으로 표시됩니다. 내가 가진 문제는 행을 선택하면 서식이 사라지고 파란색으로 변하는 것입니다.Devexpress gridcontrol 선택한 행 색상 변경

내가 선택한 행 색상을 그 행이 어떤 색상이든 약간 어두운 음영으로하고 싶습니다. 나는. 행이 음영 처리 된 색을 계속 말할 수 있지만 선택되었음을 알릴 수도 있습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1

나는 GridView.CustomDrawCell 이벤트를 처리하여 수동으로이 작업을 수행하고 현재 행 상태에 따라 행 색상을 설정해야한다고 생각합니다. 메모리가 제대로 작동하면 행 상태 정보에 대한 RowCellCustomDrawEventArgs.Cell 속성을 확인해야합니다.

질문이 있으시면 행을 선택했을 때 동작을 수정하기 만하면 행이 선택되지 않고 기존 기능이 변경되지 않으면 사용자 지정 그리기 (e.Handled=False 설정)를 건너 뛸 수 있습니다.

+0

좋아, 그래서 나는 셀의 색상을 변경할 수 있습니다,하지만 어떻게 내가 내 FormatConditions에 의해 지정된 값을받을 수 있나요? e.Appearance.BackColor에서 if 조건을 사용하여 시도했지만 색상이 아직없는 셀이 포맷 된 것처럼 보이지 않습니다. 나는. 선택되지 않은 행이 정상적인 빨간색으로 포맷 된 경우 선택한 행이 DarkRed가되도록합니다. – user832747

2

핸들 GridView.CustomDrawCell Event 현재 셀의 상태를 가져오고 선택한 행에 속하는지 여부를 확인합니다.

// 셀의 상태 가져 오기 - 그럼

GridRowCellState state = ((GridCellInfo)e.Cell).State; 

if ((state & GridRowCellState.Selected) == GridRowCellState.Selected) 
{ 
// do your custrom drawing here. 
// for example 
e.DisplayText = ""; 
e.Appearance.BorderColor = Color.White; 
} 

는 그 다음 CustomDrawEventArgs.Handled Property을 설정 선택된 행의 셀에 대한 확인 - 페인트 e.Cell는 현재 셀에 대한 액세스를 제공을 - e.Handled = true or false; 귀하의 requirment에 따라 셀을 페인팅 한 후. 이 문서의 링크를 통해

이동합니다
Custom Painting Basics
Custom Painting Samples

+0

그래, 셀의 색을 바꿀 수는 있어도, 어떻게 내 FormatConditions에 지정된 값을 얻을 수 있습니까? e.Appearance.BackColor에서 if 조건을 사용하여 시도했지만 색상이 아직없는 셀이 포맷 된 것처럼 보이지 않습니다. 나는. 선택되지 않은 행이 정상적인 빨간색으로 포맷 된 경우 선택한 행이 DarkRed가되도록합니다. – user832747

+0

당신은 여전히 ​​행이 음영 처리되었음을 알 수 있습니다.이 문제에 관해서는 .. 'e.Cache'는 국경, 배경 등을 제공합니다. 펜과 브러쉬 객체는 색상 등을 얻을 수 있도록 도와줍니다. formatconditions는 다음과 같습니다 :'GridView view = (GridView) sender; StyleFormatCondition condition1 = view.FormatConditions [ "nameofcondition"];' –

관련 문제