日期:2014-05-17  浏览次数:20978 次

一个多行的label,如何分别得到每行的文字内容?
有一个多行的label,显示内容为:

中华人民DF21共和国二炮
部队后勤1处

如何分别提取出各行显示的内容?

------解决方案--------------------
string S=Label1.Text;
Console.WriteLine(S.Split("\n"))(0)
Console.WriteLine(S.Split("\n"))(1)
------解决方案--------------------
C# code
string[] result=Regex.Split(this.label1.Text,@"\r\n");

------解决方案--------------------
Console.WriteLine(label1.Text.Split('\n')[0]);
Console.WriteLine(label1.Text.Split('\n')[1]);
------解决方案--------------------
那就应该计算字符串长度跟label宽度对比,得出每行
方法
C# code
private List<string> GetStr(string str, List<string> _list,int width,Font font)
        {
            if(_list==null)
             _list = new List<string>();
            for (int i = 0; i < str.Length; i++)
            {
                string temp = str.Substring(0, i + 1);
                Graphics g = this.CreateGraphics();
                SizeF siF = g.MeasureString(temp, font);
                if (siF.Width > width)
                {
                    temp = temp.Remove(temp.Length-1);
                    _list.Add(temp);
                    str=str.Replace(temp, string.Empty);
                    return GetStr(str, _list, width, font);
                }
            }
            return _list;
        }