| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7359 人关注过本帖
标题:Vb中的复制文本框里内容的问题
只看楼主 加入收藏
maoyingtao
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-7-12
收藏
得分:0 
2楼的好复杂
看不懂
2008-10-03 13:25
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
才两行代码……还复杂?

VB QQ群:47715789
2008-10-03 13:32
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
。。。。。。。。。这个有什么看头啊,就一个API,说看不懂
真理是不需要你看懂的

偶是菜鸟鸟偶惧WHO?!!!!
2008-10-03 13:38
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
VB的剪贴板和Windows的剪贴板有什么区别?
2008-10-03 13:43
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
[bo][un]multiple1902[/un] 在 2008-10-3 13:43 的发言:[/bo]

VB的剪贴板和Windows的剪贴板有什么区别?

程序代码:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_COPY As Long = &H301
Const EM_SETSEL = &HB1&

Private Sub Command2_Click()
  Text1.Text = Format(Rnd * 100, "#0.0000000")
  SendMessage Text1.hWnd, EM_SETSEL, 0&, -1&    '选择要复制的文本内容,第三个参数是启始位置,第四个参数是结束位置;
  SendMessage Text1.hWnd, WM_COPY, 0&, 0&       '复制Text1中被选中的文本内容。
  MsgBox Clipboard.GetText
End Sub

Private Sub Command1_Click()
  Text1.Text = Format(Rnd * 100, "#0.0000000")
  Text1.SelStart = 0
  Text1.SelLength = Len(Text1.Text)
  Clipboard.SetText Text1.SelText
  MsgBox Clipboard.GetText
End Sub


你分别点击这个两Command后,再在记事本中点粘贴就会发现这二者的区别了。
用SendMessage复制的粘贴后的内容就是文本框中的内容,Msgbox中的内容也被修改,用Clipboard.SetText的则Msgbox中的信息被改为Text1中的内容,但粘贴到记事本中的内容却不是。

[[it] 本帖最后由 Joforn 于 2008-10-3 14:13 编辑 [/it]]

VB QQ群:47715789
2008-10-03 14:12
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
说实话,SendKeys最简单最保险......
2008-10-04 01:47
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
[bo][un]三断笛[/un] 在 2008-10-4 01:47 的发言:[/bo]

说实话,SendKeys最简单最保险......

SendKeys是最简单的用法,但也是最不保险的,因为你永远都无法保证这个SendKeys发送到哪去了(如果程序要求在最小化或是后台运行,那你用SendKeys发送到哪去?)。

VB QQ群:47715789
2008-10-04 10:23
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
[bo][un]Joforn[/un] 在 2008-10-3 14:12 的发言:[/bo]



Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_COPY As Long = &H301
Const E ...

怎么感觉是你Commmand1的事件里忘了Clipboard.Clear……
2008-10-04 13:05
WenJem
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-5
收藏
得分:0 
下面的代码,就可以把  Textxs.Text 放入剪贴板。

    Clipboard.Clear ' 清除文本剪贴板。
    Clipboard.SetText Textxs.Text    ' 将正文放置在剪贴板上。
2008-10-05 13:21
快速回复:Vb中的复制文本框里内容的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017053 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved