在编辑器中编辑好带有换行的文本,例如朝阳区
小王拷贝粘贴到VB6程序的Textbox中,换行符不显示出来,
但确实存在,并且可以选择(看起来像一个非常非常细小的空格)而拷贝到VB.Net程序的Textbox时,
如果Multiline属性为False,
会在第一个换行符处被截断,只有前面的内容(朝阳区)会被贴上去
如果Multiline属性为True,
可以全部粘贴上去,但换行符也会显示出来,
因为控件高度固定只有一行,
要看到全部内容必须按上下方向键现在我有个特殊的需求,
1,我希望在.Net里也能实现和VB6的Textbox一样的效果,
就是不让换行符显示出来。
2,在这里只考虑粘贴的情况,不考虑直接输入回车的情况。现在已知的是,如果在程序中用vbcrlf拼字符串给Textbox赋值,
并且Textbox的Multiline属性为False时,可以满足需求1,但是对粘贴就没办法了。我继承了Textbox做了一个类,重载wndproc,
捕捉到WM_PASTE事件之后把剪贴板中的数据整理成String数组,
然后用vbcrlf连起来,这样就有了可以往非Multiline的Textbox中粘贴的数据,
但是粘贴时还需要判断光标位置,以和当前Textbox的内容拼起来,
这个不知道怎么做了各位有什么好方法吗?
实现越容易越好
小王拷贝粘贴到VB6程序的Textbox中,换行符不显示出来,
但确实存在,并且可以选择(看起来像一个非常非常细小的空格)而拷贝到VB.Net程序的Textbox时,
如果Multiline属性为False,
会在第一个换行符处被截断,只有前面的内容(朝阳区)会被贴上去
如果Multiline属性为True,
可以全部粘贴上去,但换行符也会显示出来,
因为控件高度固定只有一行,
要看到全部内容必须按上下方向键现在我有个特殊的需求,
1,我希望在.Net里也能实现和VB6的Textbox一样的效果,
就是不让换行符显示出来。
2,在这里只考虑粘贴的情况,不考虑直接输入回车的情况。现在已知的是,如果在程序中用vbcrlf拼字符串给Textbox赋值,
并且Textbox的Multiline属性为False时,可以满足需求1,但是对粘贴就没办法了。我继承了Textbox做了一个类,重载wndproc,
捕捉到WM_PASTE事件之后把剪贴板中的数据整理成String数组,
然后用vbcrlf连起来,这样就有了可以往非Multiline的Textbox中粘贴的数据,
但是粘贴时还需要判断光标位置,以和当前Textbox的内容拼起来,
这个不知道怎么做了各位有什么好方法吗?
实现越容易越好
解决方案 »
- 请问如何把桌面的图片保存为文件啊。
- 请问直接利用记录集的方法更新、更改数据好不好?
- janus gridex2000 表格控件,如何使用非绑定方式编程?
- 散分求助~~急!
- 我写成SELECT SUM(QTY) FROM TASK WHERE MFGORDERID='XXXXXXX'.....
- 我进 CSDN 论坛时 IE 经常会死在哪里,用别的浏览器也会这样。
- 有没有人会用vb连接oracle数据库啊!
- datacombo问题
- 一个VB调用ACCESS数据库的通过计算再输入ACCESS数据库
- 新版好象有Bug呀!
- 如何判断无Content-Length头的http协议消息传输完毕了啊?!
- 利用Jmail接收新邮件,遇到的问题?
但是很明显很清楚地可以看到文本是换行的。
因为Multiline是False所以换行符没能被输入进去。
直接敲回车敲不进,模拟敲也是一样啊。
代码很简单Option ExplicitPublic Property Get Text() As String
Text = Text1.Text
End Property
Public Property Let Text(ByVal Text As String)
Text1.Text = Text
End Property编译为Ocx后,在.Net中引用,.Net中的代码这样
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
AxTextBox1.CtlText = "ddd" & vbCrLf & "aaa"
End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MsgBox(AxTextBox1.CtlText)'这里的用CtlText访问
End Sub
End Class不知这个方法,你是否可以接受
你的意思是用VB6作控件放到.Net里来用吧。
很遗憾这个行不通,事实上我现在用的也是从Textbox继承下来的类,但是是.Net的。这个换行的功能其实整个系统只有一个Textbox偶尔需要用到,其他的都不需要换行。
现在测试已经快结束了,影响范围大的改动是不可能了。
因为改后的测试要花很多精力,所以想要个尽可能简单的办法。
实现得脏一点都没关系。
走得不是剪贴板机制,所以可以在WM_PASTE里面做。
基本上认为,那个小方块就不是vbCrLf
拷贝出来可以看到值是0D0A。