1. Este código é o corpo principal do processamento de strings excessivamente longas;
void ItemDataBound(objeto remetente, DataGridItemEventArgs e)
{
// Obtém a string a ser exibida
string title = GetTheString();
// Retorna o texto atualizado para a coluna especificada
string newText = AdjustTextForDisplay(título, 1, grade);
// Defina o texto incluindo a dica de ferramenta quando necessário
e.Item.Cells[1].Text = novoTexto;
}
2.A função da função AdjustTextForDisplay(string,int,DataGrid) é interceptar a string que é muito longa de acordo com a largura da coluna;
O que precisa ser observado aqui é que as propriedades Font e Columns[colIndex].ItemStyle.Width do DataGrid devem receber valores atribuídos. Se nenhum valor for atribuído, a função usará o valor padrão do sistema. Se não for tratada, a função lançará uma exceção.
string AdjustTextForDisplay(string texto, int colIndex, grade DataGrid)
{
//Calcula as dimensões do texto com a fonte atual
TamanhoF textSize = MeasureString(texto, grid.Font);
//Compara o tamanho com a largura da coluna
int colWidth = (int) grid.Columns[colIndex].ItemStyle.Width.Value;
if(textSize.Width > colWidth)
{
// Obtém os pixels excedentes
int delta = (int) (textSize.Width - colWidth);
//Calcula a largura média dos caracteres (aprox)
int avgCharWidth = (int) (textSize.Width/text.Length);
// Calcula o número de caracteres a serem cortados para permanecer na largura fixa (aproximadamente)
int chrToTrim = (int) (delta/avgCharWidth);
// Obtém a substring adequada + as reticências
// Apara mais 2 caracteres (aproximadamente) para abrir espaço para as reticências
string rawText = text.Substring(0, text.Length-(chrToTrim+2)) + "";
// Formato para adicionar uma dica de ferramenta
stringfmt = "{1}";
return String.Format(fmt, texto, rawText);
}
retornar texto;
}