要在一控件中显示字符串,很难,请求帮助。
winForm的。 
 是这样的,有一字符串,长度、行数都不一定(如:字符串中包含有换行符),要在一控件中显示,但显示的宽度不能超过400像素,如超过则换行。并且,还要调整控件的大小,使字符串在这一控件中正好显示完,周围没有剩余空间,也没不足。 
 最好有代码。 
 谢谢啦!!!!!!!!!
------解决方案--------------------那你看一下这个代码,我没有更多的测试,楼主自己来检验结果吧,我简单的测试一下没有问题,代码如下,和上面的那个是不一样的,这个换行好使的:   
 private void button1_Click(object sender, EventArgs e) 
 { 
 	string str = this.richTextBox1.Text; 
 	using (Graphics g = this.panel1.CreateGraphics()) 
 	{ 
 		StringFormat format = new StringFormat( StringFormatFlags.DisplayFormatControl| StringFormatFlags.FitBlackBox| StringFormatFlags.LineLimit| StringFormatFlags.MeasureTrailingSpaces); 
 		Size size = g.MeasureString(str, this.Font,400, format).ToSize();   
 		if (size.Width >  400) 
 		{ 
 			size = new Size(400, size.Width * size.Height / 400); 
 		} 
 		Rectangle rect = new Rectangle(0, 0, size.Width, size.Height);   
 		this.panel1.Size = new Size(size.Width + 1, size.Height + 1); 
 		g.Clear(this.panel1.BackColor); 
 		g.DrawString(str, this.Font, SystemBrushes.WindowText, rect, format); 
 		g.DrawRectangle(SystemPens.WindowText, rect); 
 	} 
 } 
------解决方案--------------------string str = textBox1.Text; 
             Regex r = new Regex( "(\r\n) "); // Split on hyphens. 
             Size rowSize = new Size(); 
             int row = 0; 
             string[] s = r.Split(str);  
             foreach (string lineString in s) 
             { 
                 if (lineString!= "\r\n ") 
                 { 
                     rowSize = TextRenderer.MeasureText(lineString, this.Font); 
                     if (rowSize.Width >  400) 
                     { 
                         row += rowSize.Width / 400 + 1; 
                     } 
                     else 
                     { 
                         row++; 
                     } 
                 } 
             } 
             textBox2.Size = new Size(400, (row+1) * rowSize.Height); 
             textBox2.Text = str;