1. 이 코드는 지나치게 긴 문자열을 처리하는 본체입니다.
void ItemDataBound(객체 전송자, DataGridItemEventArgs e)
{
// 표시할 문자열을 가져옵니다.
string title = GetTheString();
// 지정된 열에 대해 업데이트된 텍스트를 반환합니다.
string newText = adjustTextForDisplay(제목, 1, 그리드);
// 필요한 경우 툴팁을 포함한 텍스트를 설정합니다.
e.Item.Cells[1].Text = newText;
}
2.AdjustTextForDisplay(string,int,DataGrid) 함수의 기능은 열 너비에 비해 너무 긴 문자열을 가로채는 것입니다.
여기서 주목해야 할 점은 DataGrid의 Font 및 Columns[colIndex].ItemStyle.Width 속성에 값을 할당해야 한다는 것입니다. 값이 지정되지 않으면 함수는 시스템 기본값을 사용합니다. 처리되지 않으면 함수에서 예외가 발생합니다.
string adjustTextForDisplay(문자열 텍스트, int colIndex, DataGrid 그리드)
{
// 현재 글꼴을 사용하여 텍스트의 크기를 계산합니다.
SizeF textSize = MeasureString(text, Grid.Font);
// 열의 너비와 크기를 비교합니다.
int colWidth = (int) Grid.Columns[colIndex].ItemStyle.Width.Value;
if(textSize.Width > colWidth)
{
// 초과하는 픽셀을 가져옵니다.
int delta = (int) (textSize.Width - colWidth);
// 문자의 평균 너비를 계산합니다(대략).
int avgCharWidth = (int) (textSize.Width/text.Length);
// 고정 너비를 유지하기 위해 잘라낼 문자 수를 계산합니다(대략).
int chrToTrim = (int) (delta/avgCharWidth);
// 적절한 하위 문자열 + 줄임표를 얻습니다.
// 줄임표를 위한 공간을 확보하기 위해 문자 2개를 더 잘라냅니다(대략).
string rawText = text.Substring(0, text.Length-(chrToTrim+2)) + "";
// 툴팁을 추가하기 위한 형식
문자열 fmt = "{1}";
return String.Format(fmt, text, rawText);
}
텍스트 반환;
}