private ArrayList GetSeparateSubString(string mOrigianlString, float subStringCharNumber)
{
ArrayList resultList = new ArrayList();
string tempStr = mOrigianlString;
float charNumber = subStringCharNumber;
float totalWidth = 0f;
string mSubStr = "";
for (int i = 0; i < tempStr.Length; i++)
{
string mChar = tempStr.Substring(i, 1);
Graphics grap = this.CreateGraphics();
grap.PageUnit = GraphicsUnit.Pixel;
Font f = new Font("MS P明朝",9);
float fWidth = grap.MeasureString(mChar, f).Width;
totalWidth += fWidth;
if (totalWidth - fWidth / 2 > charNumber ) //球越过门线没有?
{
resultList.Add(mSubStr);
if (i == tempStr.Length - 1)
{
mSubStr = mChar;
resultList.Add(mSubStr);
}
else
{
totalWidth = fWidth;
mSubStr = mChar;
}
}
else if (totalWidth == charNumber)
{
mSubStr += mChar;
resultList.Add(mSubStr);
totalWidth = 0;
mSubStr = "";
}
else if (i == tempStr.Length - 1)
{
mSubStr += mChar;
resultList.Add(mSubStr);
}
else
{
mSubStr += mChar;
}
}
return resultList;
}