阅读背景:

关于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
我搞不清楚是什么原因,哪位高手可以教教我?谢谢。

6 个解决方案

#1


试试将TextBox控件的BorderStyle属性设为None,别忘了TextBox的宽度和高度包括其边框的2像素!

#2


试过了,一样的结果。

#3


别急,我在试试!

#4


试过了n次,如果TextBox字体为默认的,则
myGraphics.DrawString(TextBox1.Text, TextBox1.Font, Brushes.Black, New RectangleF(0, 0, TextBox1.Width + 6, TextBox1.Height + 6))可以解决,但TextBox的自动换行机制不太明白,换种字体就不行了,可以取消TextBox的自动换行设置,试试自己控制TextBox的自动换行!

#5


我的程序中,字体是要随意更改的。
自己控制自动换行?这个好像很困难啊。。。

#6


自动换行会被认为就是一行,所以不容易控制,可以在自动换行处强制加入回车符,这样绘制出来的应该一样了。

分享到: