1. Este código es el cuerpo principal del procesamiento de cadenas demasiado largas;
void ItemDataBound (remitente del objeto, DataGridItemEventArgs e)
{
//Obtiene la cadena que se mostrará
título de cadena = GetTheString();
// Devuelve el texto actualizado para la columna especificada
string newText = AjustarTextForDisplay(título, 1, cuadrícula);
// Establece el texto incluyendo la información sobre herramientas cuando sea necesario
e.Item.Cells[1].Texto = nuevoTexto;
}
2.La función de la función AjustarTextForDisplay(string,int,DataGrid) es interceptar la cadena que es demasiado larga según el ancho de la columna;
Lo que hay que tener en cuenta aquí es que a las propiedades Font y Columns[colIndex].ItemStyle.Width de DataGrid se les deben asignar valores. Si no se asigna ningún valor, la función utilizará el valor predeterminado del sistema. Si no se maneja, la función generará una excepción.
cadena AjustarTextForDisplay (texto de cadena, int colIndex, cuadrícula DataGrid)
{
// Calcula las dimensiones del texto con la fuente actual
SizeF textSize = MeasureString(texto, grid.Font);
// Compara el tamaño con el ancho de la columna
int colWidth = (int) grid.Columns[colIndex].ItemStyle.Width.Value;
if(tamañotexto.Ancho > anchocol)
{
// Obtener los píxeles sobrantes
int delta = (int) (textSize.Width - colWidth);
// Calcula el ancho promedio de los caracteres (aprox.)
int avgCharWidth = (int) (textSize.Width/text.Length);
// Calcula el número de caracteres a recortar para mantener el ancho fijo (aprox.)
int chrToTrim = (int) (delta/avgCharWidth);
// Obtener la subcadena adecuada + los puntos suspensivos
// Recorta 2 caracteres más (aprox.) para dejar espacio para los puntos suspensivos
cadena rawText = text.Substring(0, text.Length-(chrToTrim+2)) + "";
// Formato para agregar información sobre herramientas
cadena fmt = "{1}";
return String.Format(fmt, texto, rawText);
}
devolver texto;
}