如何在TextBox中实现记事本的自动换行功能???
用TextBox.MultiLine=True不可以。
TextBox.MultiLine=False以后按回车不会换行。

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1738/1738077.xml?temp=.2903253http://expert.csdn.net/Expert/topic/1843/1843713.xml?temp=.644848http://expert.csdn.net/Expert/topic/1843/1843715.xml?temp=.3068964http://expert.csdn.net/Expert/topic/1843/1843734.xml?temp=.3039667http://expert.csdn.net/Expert/topic/1886/1886415.xml?temp=.8146173http://expert.csdn.net/Expert/topic/1908/1908168.xml?temp=.4586908http://expert.csdn.net/Expert/topic/1926/1926988.xml?temp=.5633661http://expert.csdn.net/Expert/topic/1509/1509588.xml?temp=.1312067http://expert.csdn.net/Expert/topic/1536/1536260.xml?temp=.7840692http://expert.csdn.net/Expert/topic/1616/1616973.xml?temp=.7694208http://expert.csdn.net/Expert/topic/2067/2067527.xml?temp=.7136347
    回复人: zyl910(910:分儿,我来了!) ( ) 信誉:166  2003-3-9 21:08:53  得分:14   
    你们知道“记事本”是怎么实现“自动换行”的吗?结果非常令人想死居然是:将原来的文本框删掉,再新建一个
    当初我也是满怀信心的思索记事本自动换行的原理,后来没想到居然是这样的一个结果理由:自动换行后,文本框的hWnd变了。在现有的Windows操作系统中,除非窗口清除(可理解为删掉),hWnd一直不变And有效 
     
      

  2.   

    你知道VB的TextBox控件是怎么来的吗?就是封装了Windows系统的Edit控件。
    Edit控件有个特点,就是如果要改变它的窗口风格的话,就必须重新创建一个。所以在设置MultiLine 属性的时候,原来的文本框被删除,同时又重新创建了一个。
    这种方法在设计时没什么问题,可在运行时就麻烦了,因为很多属性需要重新调整,而VB对动态创建的支持并不完全,所以只能把MultiLine 属性设定为设计时的属性
    记事本就是这样做的
    每次切换自动换行时,它把原来的Edit窗口删除,再创建一个新的Edit窗口不信的话就用Spy去查看记事本的文本框
    看看自动换行切换后,文本框的句柄是否改变(改变表示重新建立了一个)