1. Dieser Code ist der Hauptteil der Verarbeitung übermäßig langer Zeichenfolgen.
void ItemDataBound(object sender, DataGridItemEventArgs e)
{
// Den anzuzeigenden String abrufen
string title = GetTheString();
// Gibt den aktualisierten Text für die angegebene Spalte zurück
string newText = AdjustTextForDisplay(title, 1, grid);
// Legen Sie bei Bedarf den Text einschließlich des Tooltips fest
e.Item.Cells[1].Text = newText;
}
2. Die Funktion „AdjustTextForDisplay(string,int,DataGrid)“ besteht darin, die Zeichenfolge abzufangen, die entsprechend der Breite der Spalte zu lang ist;
Hierbei ist zu beachten, dass den Eigenschaften Font und Columns[colIndex].ItemStyle.Width von DataGrid Werte zugewiesen werden müssen. Wenn kein Wert zugewiesen ist, verwendet die Funktion den Systemstandardwert. Wenn sie nicht behandelt wird, löst die Funktion eine Ausnahme aus.
string AdjustTextForDisplay(string text, int colIndex, DataGrid Grid)
{
// Berechnen Sie die Abmessungen des Textes mit der aktuellen Schriftart
SizeF textSize = MeasureString(text, grid.Font);
// Vergleichen Sie die Größe mit der Breite der Spalte
int colWidth = (int) grid.Columns[colIndex].ItemStyle.Width.Value;
if(textSize.Width > colWidth)
{
// Holen Sie sich die überschüssigen Pixel
int delta = (int) (textSize.Width - colWidth);
// Berechnen Sie die durchschnittliche Breite der Zeichen (ungefähr)
int avgCharWidth = (int) (textSize.Width/text.Length);
// Berechnen Sie die Anzahl der zu kürzenden Zeichen, um die feste Breite beizubehalten (ungefähr)
int chrToTrim = (int) (delta/avgCharWidth);
// Holen Sie sich die richtige Teilzeichenfolge + die Auslassungspunkte
// Schneiden Sie ca. 2 weitere Zeichen ab, um Platz für die Auslassungspunkte zu schaffen
string rawText = text.Substring(0, text.Length-(chrToTrim+2)) + "";
// Format zum Hinzufügen eines Tooltips
string fmt = "{1}";
return String.Format(fmt, text, rawText);
}
Rückgabetext;
}