2014-09-30 2 views
0

우리 응용 프로그램에서는 데이터를 표시하기 위해 datagridview 컨트롤을 사용하고 있습니다. GridView에서 한 열은 DataGridViewImageColumn입니다. CellFormatting 이벤트에서 DataGridViewImageColumn을 통해 텍스트를 표시하는 방법

우리는 삼각형 비트 맵 자원

e.CellStyle.BackColor = Color.Red; 
e.Value = Properties.Resources.Triangle 

같은 일부 이미지를 설정하는 화상 투명하다. 색상을 Red로 설정하면 이미지의 투명한 부분에 색상이 표시되고 정상적으로 작동합니다.

이제 이미지 위에 텍스트를 표시해야합니다. DataGridViewImageColumn에 표시된 투명 이미지 위에 텍스트를 표시하는 방법이 있습니다.

+0

"Value"에 지정하기 전에 이미지에 텍스트를 "그릴"수 있습니다. – DonBoitnott

+0

@DonBoitnott : 좋아 .. 그럼 내가 이미지를 가져 와서 프로그램 상 텍스트 위에 텍스트를 써야 할 필요가 있다고 말하는 것일까? –

+0

문제를 해결 했습니까? – TaW

답변

2

이미지를 엉망으로 만들 필요가 없습니다.

대신 어쩌면이 같은 자신에 의해, 셀의 그림을 제어 할 수 있습니다

private void dataGridView1_CellPainting(object sender, 
             DataGridViewCellPaintingEventArgs e) 
{ 
    if (e.ColumnIndex == yourImageColumnIndex) 
    { 
    e.PaintBackground(e.ClipBounds, true); 
    e.PaintContent(e.ClipBounds); 
    e.Graphics.DrawString(yourText, dataGridView1.Font, Brushes.Yellow, 
            e.CellBounds.X, e.CellBounds.Y); 
    e.Handled = true; 
    } 
} 

당신은 대부분의 작업은 시스템에 의해 이루어집니다 볼 수 있듯이, 텍스트를 그리려면 한 줄만 추가하면됩니다. 물론 다른 글꼴을 사용하고 다른 모든 매개 변수를 바꿀 수도 있습니다. e.CellBounds 직사각형 내에 있어야합니다.

당신은 event's aguments에서 데이터의 풍부한 살펴 habe 할 수 있습니다

..

텍스트가 행에 의존하는 경우

각에 대해 표시 할 적절한 텍스트를 얻을 수있는 e.RowIndex PARAM을 사용할 수 있습니다 세포.

관련 문제