1.这段代码是处理过长字符串的主体;
void
ItemDataBound(
object
sender, DataGridItemEventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/834609732d1dfd7329d4e9f887c87c05.gif)
{
// Get the string to be displayed
string title = GetTheString();
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
// Returns the updated text for the specified column
string newText = AdjustTextForDisplay(title, 1, grid);
// Set the text including the tooltip when necessary
e.Item.Cells[1].Text = newText;
}
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)
2.AdjustTextForDisplay(string,int,DataGrid)函数的功能是根据列的宽度,截取过长的字符串;
这里需要注意的是DataGrid的Font和Columns[colIndex].ItemStyle.Width属性必需有赋值。如果没有赋值的话,函数将会采用系统默认的值。如不加处理,函数会出异常。
string
AdjustTextForDisplay(
string
text,
int
colIndex, DataGrid grid)
![](https://i-blog.csdnimg.cn/blog_migrate/834609732d1dfd7329d4e9f887c87c05.gif)
{
// Calculate the dimensions of the text with the current font
SizeF textSize = MeasureString(text, grid.Font);
// Compare the size with the column's width
int colWidth = (int) grid.Columns[colIndex].ItemStyle.Width.Value;
if(textSize.Width > colWidth)
![](https://i-blog.csdnimg.cn/blog_migrate/c1bc77c0f329b536eeb823ae2211a721.gif)
{
// Get the exceeding pixels
int delta = (int) (textSize.Width - colWidth);
// Calculate the average width of the characters (approx)
int avgCharWidth = (int) (textSize.Width/text.Length);
// Calculate the number of chars to trim to stay in the fixed width (approx)
int chrToTrim = (int) (delta/avgCharWidth);
// Get the proper substring + the ellipsis
// Trim 2 more chars (approx) to make room for the ellipsis
string rawText = text.Substring(0, text.Length-(chrToTrim+2)) + "
";
// Format to add a tooltip
string fmt = "{1}";
return String.Format(fmt, text, rawText);
}
return text;
}
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/834609732d1dfd7329d4e9f887c87c05.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e59ac97c4405af8a0da33276a590237.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a748b65460331f2c4ffb525ee440e8da.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)
这里需要注意的是DataGrid的Font和Columns[colIndex].ItemStyle.Width属性必需有赋值。如果没有赋值的话,函数将会采用系统默认的值。如不加处理,函数会出异常。
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/834609732d1dfd7329d4e9f887c87c05.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9e59ac97c4405af8a0da33276a590237.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c1bc77c0f329b536eeb823ae2211a721.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc308b1dfc07d0973738e9db670e97a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8b777de4000190246f7ce2c04ba7dd93.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c8a55a906e0d51781944c3cc82bbfe6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a748b65460331f2c4ffb525ee440e8da.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fbdd7d07a3b17d4f8e38e34e113981a.gif)