1. Kode ini adalah bagian utama dari pemrosesan string yang terlalu panjang;
void ItemDataBound(pengirim objek, DataGridItemEventArgs e)
{
// Dapatkan string yang akan ditampilkan
string title = GetTheString();
// Mengembalikan teks yang diperbarui untuk kolom tertentu
string newText = AdjustTextForDisplay(judul, 1, kisi);
// Atur teks termasuk tooltip bila diperlukan
e.Item.Sel[1].Teks = Teks baru;
}
2.Fungsi fungsi AdjustTextForDisplay(string,int,DataGrid) adalah untuk mencegat string yang terlalu panjang sesuai dengan lebar kolom;
Yang perlu diperhatikan di sini adalah properti Font dan Columns[colIndex].ItemStyle.Width dari DataGrid harus diberi nilai. Jika tidak ada nilai yang ditetapkan, fungsi akan menggunakan nilai default sistem. Jika tidak ditangani, fungsi tersebut akan memunculkan pengecualian.
string AdjustTextForDisplay(teks string, int colIndex, kisi DataGrid)
{
// Hitung dimensi teks dengan font saat ini
SizeF textSize = MeasureString(teks, grid.Font);
// Bandingkan ukurannya dengan lebar kolom
int colWidth = (int) grid.Kolom[colIndex].ItemStyle.Width.Value;
if(Ukuran teks.Lebar > lebar kolom)
{
// Dapatkan piksel yang melebihinya
int delta = (int) (ukuran teks.Lebar - lebar col);
// Hitung rata-rata lebar karakter (perkiraan)
int avgCharWidth = (int) (ukuran teks.Lebar/teks.Panjang);
// Hitung jumlah karakter yang harus dipangkas agar tetap dalam lebar tetap (kira-kira)
int chrToTrim = (int) (delta/avgCharWidth);
// Dapatkan substring yang tepat + elipsis
// Pangkas 2 karakter lagi (kira-kira) untuk memberi ruang bagi elipsis
string rawText = teks.Substring(0, teks.Panjang-(chrToTrim+2)) + "";
// Format untuk menambahkan keterangan alat
string fmt = "{1}";
return String.Format(fmt, teks, rawText);
}
mengembalikan teks;
}