关于Graphics类的DrawString与TextBox的自动换行对应问题
在一个TextBox(自动换行)中输入文本,在Picturebox中画出所输入的文本内容,要求两方显示完全相同。
我使用下面的函数来画出文本内容,可是在Picturebox中显示文本内容的自动换行位置很多时候是不同的。
myGraphics.DrawString(TextBox1.Text, TextBox1.Font, Brushes.Black, _
New RectangleF(0, 0, TextBox1.Width, TextBox1.Height))
例如:
输入:ABCDEFGHIJKLMN
TextBox中的内容是
ABCDEFGHIJKLM
N
Picturebox中的内容就可能是
ABCDEFGHIJKL
MN
我搞不清楚是什么原因,哪位高手可以教教我?谢谢。
问题点数:100、回复次数:6Top
1 楼sagezk(SageZK)回复于 2005-06-03 19:21:44 得分 0
试试将TextBox控件的BorderStyle属性设为None,别忘了TextBox的宽度和高度包括其边框的2像素!Top
2 楼qlming(心语)回复于 2005-06-03 19:23:08 得分 0
试过了,一样的结果。Top
3 楼sagezk(SageZK)回复于 2005-06-03 19:49:55 得分 0
别急,我在试试!Top
4 楼sagezk(SageZK)回复于 2005-06-03 20:35:13 得分 60
试过了n次,如果TextBox字体为默认的,则
myGraphics.DrawString(TextBox1.Text, TextBox1.Font, Brushes.Black, New RectangleF(0, 0, TextBox1.Width + 6, TextBox1.Height + 6))可以解决,但TextBox的自动换行机制不太明白,换种字体就不行了,可以取消TextBox的自动换行设置,试试自己控制TextBox的自动换行!
Top
5 楼qlming(心语)回复于 2005-06-03 21:08:08 得分 0
我的程序中,字体是要随意更改的。
自己控制自动换行?这个好像很困难啊。。。Top
6 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-06-04 11:47:06 得分 40
自动换行会被认为就是一行,所以不容易控制,可以在自动换行处强制加入回车符,这样绘制出来的应该一样了。Top




