저는 현재 WinForms 2.0 응용 프로그램입니다. 현재 셀 (IDataGridViewEditingControl) 내에서 DataGridView와 사용자 지정 편집 컨트롤을 사용하고 있습니다.DataGridViewCellStyle.ForeColor가 예상대로 작동하지 않습니다.
현재 셀은 텍스트 상자를 상속하고 IDataGridViewEditingControl 인터페이스를 구현하는 사용자 지정 편집 컨트롤을 사용합니다. 이 컨트롤은 값을 편집하는 동안 일부 유효성 검사 논리를 수행하고 사용자 지정 편집 컨트롤의 일부 시각 효과를 DataGridView 셀에 적용하는 Leave 이벤트를 수행하기 위해 TextChanged 이벤트에 등록합니다.
이 코드는 다음과 다소 같습니다
public class CustomerTextEditingControl : CustomerTextBox, IDataGridViewEditingControl
{
...
protected override void OnLeave(object sender, EventArgs e)
{
dataGridView[_col, _row].Style.BackColor = BackgroundColor;
dataGridView[_col, _row].Style.ForeColor = ForegroundColor;
...
}
...
}
여기 지금 내 문제가있다 : 셀의 배경이 제대로 수 있습니다 어떤 색상 backgroundColor로 렌더링하는 동안, 텍스트 자체가없이 항상 검은 색으로 렌더링되지 무슨 색깔 ForegroundColor입니다. 처음에는 셀의 내용에 적용되는 다른 스타일이있을 수 있다고 생각했지만 거기에는 아무 것도 찾을 수 없었습니다. 그래서 당황 스럽네요 .-)
어떤 도움을 주시면 감사하겠습니다!
감사 마크
거기에 중단 점을 설정하면 ForeColor가 실제로 스타일에 할당되어 있는지 확인할 수 있습니까? –
예, 할당이 실행되었습니다 – Marc
그러면 이벤트 체인의 나중 시점에서 ForeColor를 재정의합니다. bahavior를 재현하는 미니멀리스트 코드를 게시하여 내 측면에서 테스트 할 수 있습니까? –