2017-01-29 1 views
0

ObjectListView에서 셀의 배경색을 변경하는 방법은 무엇입니까? CellEditFinishing 이벤트가 발생한 후? 이벤트 args를보고 있는데 배경을 변경하기 위해 셀에 액세스하는 방법을 알 수 없습니다.ObjectListView에서 셀의 배경색을 변경하는 방법은 무엇입니까?

예, 이것은 사소한 질문처럼 들리지만 ... OLV 워드 프로세서, 포럼, stackoverflow 등에서 문서화 할 곳이 없습니다 ... 한 가지 예도 없습니다 :/데모의 예제는 단순히 취소합니다. CellEditFinishing 이벤트입니다.

답변

0

CellEditFinishing에서는이 작업을 수행 할 수 없지만 내용에 따라 배경색을 변경할 수있는 논리를 FormatCell 이벤트에 넣을 수 있습니다 (셀 편집 후에 원하는 것일 수 있음).

전경색이 다른 다양한 값 범위를 나타 내기 위해이 방법을 사용했습니다.

공식 문서 here에서 예제를 살펴보십시오.) true로 UseCellFormatEvents 속성을 설정해야합니다

private void olv1_FormatCell(object sender, FormatCellEventArgs e) { 
    if (e.ColumnIndex == this.creditBalanceColumn.Index) { 
     Customer customer = (Customer)e.Model; 
     if (customer.Credit < 0) 
      e.SubItem.ForeColor = Color.Red; 
    } 
} 

참고; 사실, 나는 OLV 꽤 잘 문서화 찾을 수 있습니다.

+0

나는 이것을 결국 알아 냈지만 정확하게하고 싶지 않았습니다. 최종 사용자에게 현재 필드를 편집했다고 전하고 싶습니다 (편집중인 기본 값에 대한 조건부 제약 조건과 상관없이). CellEditFinishing 이벤트가 실행 된 직후 바로 그 일을 할 수 있었으면 좋았을 것입니다. – Selwyn

+0

@Selwyn : (특정 셀이 편집 된 경우) OLV 외부의 (아마도 모델 개체 내부의)이 정보를 항상 추적 할 수 있습니다. CellEditFinishing에서 셀 관련 플래그를 설정하고 FormatCell에서 확인하십시오. –

관련 문제