1. รหัสนี้เป็นเนื้อหาหลักของการประมวลผลสตริงที่ยาวเกินไป
เป็นโมฆะ ItemDataBound (ผู้ส่งวัตถุ DataGridItemEventArgs e)
-
// รับสตริงที่จะแสดง
string title = GetTheString();
// ส่งกลับข้อความที่อัพเดตสำหรับคอลัมน์ที่ระบุ
string newText = AdjustTextForDisplay (ชื่อ, 1, ตาราง);
// ตั้งค่าข้อความรวมถึงคำแนะนำเครื่องมือเมื่อจำเป็น
e.Item.Cells[1].Text = ข้อความใหม่;
}
2.ฟังก์ชันของฟังก์ชัน AdjustTextForDisplay(string,int,DataGrid) คือการสกัดกั้นสตริงที่ยาวเกินไปตามความกว้างของคอลัมน์
สิ่งที่ต้องสังเกตที่นี่คือคุณสมบัติ Font และ Columns[colIndex].ItemStyle.Width ของ DataGrid จะต้องได้รับการกำหนดค่า หากไม่มีการกำหนดค่า ฟังก์ชันจะใช้ค่าเริ่มต้นของระบบ หากไม่ได้รับการจัดการ ฟังก์ชันจะส่งข้อยกเว้น
สตริง AdjustTextForDisplay (ข้อความสตริง, int colIndex, ตาราง DataGrid)
-
// คำนวณขนาดของข้อความด้วยแบบอักษรปัจจุบัน
SizeF textSize = MeasureString(ข้อความ, grid.Font);
// เปรียบเทียบขนาดกับความกว้างของคอลัมน์
int colWidth = (int) grid.Columns[colIndex].ItemStyle.Width.Value;
ถ้า(textSize.Width > colWidth)
-
// รับพิกเซลที่เกิน
int delta = (int) (textSize.Width - colWidth);
// คำนวณความกว้างเฉลี่ยของตัวอักษร (โดยประมาณ)
int avgCharWidth = (int) (textSize.Width/text.Length);
// คำนวณจำนวนตัวอักษรที่จะตัดให้คงความกว้างคงที่ (โดยประมาณ)
int chrToTrim = (int) (เดลต้า/avgCharWidth);
// รับสตริงย่อยที่เหมาะสม + จุดไข่ปลา
// ตัดตัวอักษรอีก 2 ตัว (โดยประมาณ) เพื่อให้มีที่ว่างสำหรับจุดไข่ปลา
string rawText = text.Substring(0, text.Length-(chrToTrim+2)) + "";
// จัดรูปแบบเพื่อเพิ่มคำแนะนำเครื่องมือ
สตริง fmt = "{1}";
กลับ String.Format (fmt, ข้อความ, rawText);
-
ส่งกลับข้อความ;
-